aula 29/05 (alarmmanager)
TRANSCRIPT
![Page 1: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/1.jpg)
PROGRAMAÇÃO PARADISPOSITIVOS MÓVEIS
AlarmManager
![Page 2: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/2.jpg)
Objetivos da aula AlarmManager
![Page 3: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/3.jpg)
Qual a maneira mais correta para disparar uma intent as 15:00:30 de cada dia?
![Page 4: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/4.jpg)
Android nos facilita com AlarmManager...
![Page 5: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/5.jpg)
![Page 6: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/6.jpg)
![Page 7: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/7.jpg)
Podemos predizer o futuro...
![Page 8: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/8.jpg)
Podemos disparar uma Intent na data e hora desejada.
![Page 9: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/9.jpg)
Depois que ativamos o alarme, podemos até esquecê-lo.
![Page 10: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/10.jpg)
O alarme só será cancelado por nós ou caso o device seja reiniciado.
![Page 11: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/11.jpg)
![Page 12: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/12.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
}
![Page 13: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/13.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { }
}
![Page 14: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/14.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); }
}
![Page 15: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/15.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0); }
}
![Page 16: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/16.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); }
}
![Page 17: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/17.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long agendamentoEmMilis = calendario.getTimeInMillis(); }
}
![Page 18: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/18.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long agendamentoEmMilis = calendario.getTimeInMillis();
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); }
}
![Page 19: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/19.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long agendamentoEmMilis = calendario.getTimeInMillis();
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, agendamentoEmMilis, pendingIntent); }
}
![Page 20: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/20.jpg)
O AlarmManager irá disparar a Intent “ALARME_TESTE” após 10 segundos. Neste período nosso aplicativo pode ter sido finalizado. Justamente por isso,
precisaremos de um BroadcastReceiver...
![Page 21: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/21.jpg)
public class ReceberAlarme extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show(); }
}
![Page 22: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/22.jpg)
public class ReceberAlarme extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show(); }
}
![Page 23: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/23.jpg)
public class ReceberAlarme extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show(); }
}
![Page 24: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/24.jpg)
Registramos o BroadcastReceiver aonde?
![Page 25: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/25.jpg)
<?xml version="1.0" encoding="UTF-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.senai.alarmmanager“ android:versionCode="1“>
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" />
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
<activity android:name=".ExemploAlarme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".ReceberAlarme"> <intent-filter> <action android:name="ALARME_TESTE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application>
</manifest>
![Page 26: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/26.jpg)
<?xml version="1.0" encoding="UTF-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.senai.alarmmanager“ android:versionCode="1“>
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" />
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
<activity android:name=".ExemploAlarme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".ReceberAlarme"> <intent-filter> <action android:name="ALARME_TESTE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application>
</manifest>
![Page 27: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/27.jpg)
<?xml version="1.0" encoding="UTF-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.senai.alarmmanager“ android:versionCode="1“>
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" />
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
<activity android:name=".ExemploAlarme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".ReceberAlarme"> <intent-filter> <action android:name="ALARME_TESTE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application>
</manifest>
![Page 28: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/28.jpg)
<?xml version="1.0" encoding="UTF-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.senai.alarmmanager“ android:versionCode="1“>
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" />
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
<activity android:name=".ExemploAlarme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".ReceberAlarme"> <intent-filter> <action android:name="ALARME_TESTE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application>
</manifest>
![Page 29: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/29.jpg)
Como cancelar um alarme?
![Page 30: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/30.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long agendamentoEmMilis = calendario.getTimeInMillis();
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, agendamentoEmMilis, pendingIntent); }
protected void onDestroy() { super.onDestroy(); }
}
![Page 31: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/31.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long agendamentoEmMilis = calendario.getTimeInMillis();
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, agendamentoEmMilis, pendingIntent); }
protected void onDestroy() { super.onDestroy();
Intent it = new Intent("ALARME_TESTE"); }
}
![Page 32: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/32.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long agendamentoEmMilis = calendario.getTimeInMillis();
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, agendamentoEmMilis, pendingIntent); }
protected void onDestroy() { super.onDestroy();
Intent it = new Intent("ALARME_TESTE"); PendingIntent pi = PendingIntent.getBroadcast(this, 0, it, 0); }
}
![Page 33: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/33.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long agendamentoEmMilis = calendario.getTimeInMillis();
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, agendamentoEmMilis, pendingIntent); }
protected void onDestroy() { super.onDestroy();
Intent it = new Intent("ALARME_TESTE"); PendingIntent pi = PendingIntent.getBroadcast(this, 0, it, 0); AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); }
}
![Page 34: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/34.jpg)
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); }
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long agendamentoEmMilis = calendario.getTimeInMillis();
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, agendamentoEmMilis, pendingIntent); }
protected void onDestroy() { super.onDestroy();
Intent it = new Intent("ALARME_TESTE"); PendingIntent pi = PendingIntent.getBroadcast(this, 0, it, 0); AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); manager.cancel(pi); }
}
![Page 35: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/35.jpg)
E para repetir o alarme a cada 30 segundos?
![Page 36: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/36.jpg)
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pi = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long emMilis = calendario.getTimeInMillis();
int trintaSegundos = 30 * 1000;
AlarmManager alarmmanager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmmanager.set(AlarmManager.RTC_WAKEUP, emMilis, pi);}
![Page 37: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/37.jpg)
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pi = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long emMilis = calendario.getTimeInMillis();
int trintaSegundos = 30 * 1000;
AlarmManager alarmmanager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmmanager.setRepeating(AlarmManager.RTC_WAKEUP, emMilis, pi);}
![Page 38: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/38.jpg)
private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); PendingIntent pi = PendingIntent.getBroadcast(this, 0, intencao, 0);
Calendar calendario = Calendar.getInstance(); calendario.setTimeInMillis(System.currentTimeMillis()); calendario.add(Calendar.SECOND, 10); long emMilis = calendario.getTimeInMillis();
int trintaSegundos = 30 * 1000;
AlarmManager alarmmanager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmmanager.setRepeating(AlarmManager.RTC_WAKEUP, emMilis, trintaSegundos, pi);}
![Page 39: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/39.jpg)
Não utilize AlarmManager para simplesmente fazer uma Thread dormir por um determinado momento. Para isso, utilize Handler.
![Page 40: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/40.jpg)
![Page 41: Aula 29/05 (AlarmManager)](https://reader037.vdocuments.pub/reader037/viewer/2022110219/54b7b8604a795939708b4745/html5/thumbnails/41.jpg)
Até a próxima!