SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
PROGRAMAÇÃO PARA
DISPOSITIVOS MÓVEIS
AlarmManager
Objetivos da aula
 AlarmManager
Qual a maneira mais correta para
disparar uma intent as 15:00:30 de
cada dia?
Android nos facilita com
AlarmManager...
Podemos predizer o futuro...
Podemos disparar uma Intent na data
e hora desejada.
Depois que ativamos o alarme,
podemos até esquecê-lo.
O alarme só será cancelado por nós
ou caso o device seja reiniciado.
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) {
...
agendarPara10Segundos();
}
}
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) {
...
agendarPara10Segundos();
}
private void agendarPara10Segundos() {
}
}
public class ExemploAlarme extends Activity {
public void onCreate(Bundle savedInstanceState) {
...
agendarPara10Segundos();
}
private void agendarPara10Segundos() {
Intent intencao = new Intent("ALARME_TESTE");
}
}
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);
}
}
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());
}
}
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();
}
}
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);
}
}
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);
}
}
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...
public class ReceberAlarme extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show();
}
}
public class ReceberAlarme extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show();
}
}
public class ReceberAlarme extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show();
}
}
Registramos o BroadcastReceiver
aonde?
<?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>
<?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>
<?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>
<?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>
Como cancelar um alarme?
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();
}
}
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");
}
}
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);
}
}
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);
}
}
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);
}
}
E para repetir o alarme a cada 30
segundos?
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);
}
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);
}
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);
}
Não utilize AlarmManager para
simplesmente fazer uma Thread
dormir por um determinado
momento. Para isso, utilize Handler.
Até a próxima!

Mais conteúdo relacionado

Destaque

Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)Ricardo Longa
 
Android na prática - USCS
Android na prática - USCSAndroid na prática - USCS
Android na prática - USCSRenato
 
Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)Ricardo Longa
 
Aula 10 04 (intents)
Aula 10 04 (intents)Aula 10 04 (intents)
Aula 10 04 (intents)Ricardo Longa
 
Android Palestra
Android PalestraAndroid Palestra
Android PalestraRenato
 
Aula 22/05 (Handler)
Aula 22/05 (Handler)Aula 22/05 (Handler)
Aula 22/05 (Handler)Ricardo Longa
 
Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)Ricardo Longa
 
Aula 05/06 (Notification)
Aula 05/06 (Notification)Aula 05/06 (Notification)
Aula 05/06 (Notification)Ricardo Longa
 
Introduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RIntroduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RRenato
 
Pomodoro agil
Pomodoro agilPomodoro agil
Pomodoro agilRenato
 
Treze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidTreze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidRicardo Longa
 
Aula04 android intents
Aula04 android intentsAula04 android intents
Aula04 android intentsRoberson Alves
 
Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Ricardo Longa
 
K19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidK19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidAline Diniz
 
Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Ricardo Longa
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)Natanael Fonseca
 
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e CroutonMinicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e CroutonRicardo Longa
 

Destaque (20)

Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)
 
Android na prática - USCS
Android na prática - USCSAndroid na prática - USCS
Android na prática - USCS
 
Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)
 
Aula 12/06 (SQLite)
Aula 12/06 (SQLite)Aula 12/06 (SQLite)
Aula 12/06 (SQLite)
 
Aula 10 04 (intents)
Aula 10 04 (intents)Aula 10 04 (intents)
Aula 10 04 (intents)
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Aula 22/05 (Handler)
Aula 22/05 (Handler)Aula 22/05 (Handler)
Aula 22/05 (Handler)
 
Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)
 
Aula 05/06 (Notification)
Aula 05/06 (Notification)Aula 05/06 (Notification)
Aula 05/06 (Notification)
 
Introduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RIntroduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.R
 
Pomodoro agil
Pomodoro agilPomodoro agil
Pomodoro agil
 
Treze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidTreze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento android
 
Aula04 android intents
Aula04 android intentsAula04 android intents
Aula04 android intents
 
Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)Aula 6 - 08/05 (SharedPreferences)
Aula 6 - 08/05 (SharedPreferences)
 
K19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com AndroidK19 k41 Desenvolvimento Mobile com Android
K19 k41 Desenvolvimento Mobile com Android
 
Oficina Sesc Android - V1
Oficina Sesc Android - V1Oficina Sesc Android - V1
Oficina Sesc Android - V1
 
Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)Aula 6 - 08/05 (Menu)
Aula 6 - 08/05 (Menu)
 
Atividades e Intenções (Android)
Atividades e Intenções (Android)Atividades e Intenções (Android)
Atividades e Intenções (Android)
 
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e CroutonMinicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
Minicurso sobre AndroidAnnotations, GreenDAO, EventBus e Crouton
 
Tutorial Android - Activities
Tutorial Android - ActivitiesTutorial Android - Activities
Tutorial Android - Activities
 

Semelhante a Aula 29/05 (AlarmManager)

Android tutorial (2)
Android tutorial (2)Android tutorial (2)
Android tutorial (2)Kumar
 
Android training in mumbai
Android training in mumbaiAndroid training in mumbai
Android training in mumbaiCIBIL
 
02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)TECOS
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best PracticesYekmer Simsek
 
Android Code Puzzles (DroidCon Amsterdam 2012)
Android Code Puzzles (DroidCon Amsterdam 2012)Android Code Puzzles (DroidCon Amsterdam 2012)
Android Code Puzzles (DroidCon Amsterdam 2012)Danny Preussler
 
Paradigmas de linguagens de programacao - aula#9
Paradigmas de linguagens de programacao - aula#9Paradigmas de linguagens de programacao - aula#9
Paradigmas de linguagens de programacao - aula#9Ismar Silveira
 
How to recognise that the user has just uninstalled your android app droidc...
How to recognise that the user has just uninstalled your android app   droidc...How to recognise that the user has just uninstalled your android app   droidc...
How to recognise that the user has just uninstalled your android app droidc...Przemek Jakubczyk
 
How to recognise that the user has just uninstalled your android app
How to recognise that the user has just uninstalled your android appHow to recognise that the user has just uninstalled your android app
How to recognise that the user has just uninstalled your android appPrzemek Jakubczyk
 
Android Lab Test : Using the sensor gyroscope (english)
Android Lab Test : Using the sensor gyroscope (english)Android Lab Test : Using the sensor gyroscope (english)
Android Lab Test : Using the sensor gyroscope (english)Bruno Delb
 
Android accelerometer sensor tutorial
Android accelerometer sensor tutorialAndroid accelerometer sensor tutorial
Android accelerometer sensor tutorialinfo_zybotech
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android InfrastructureAlexey Buzdin
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android InfrastructureC.T.Co
 

Semelhante a Aula 29/05 (AlarmManager) (20)

Introduction toandroid
Introduction toandroidIntroduction toandroid
Introduction toandroid
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android - Anatomy of android elements & layouts
Android - Anatomy of android elements & layoutsAndroid - Anatomy of android elements & layouts
Android - Anatomy of android elements & layouts
 
Android tutorial (2)
Android tutorial (2)Android tutorial (2)
Android tutorial (2)
 
Android training in mumbai
Android training in mumbaiAndroid training in mumbai
Android training in mumbai
 
Broadcast Receiver
Broadcast ReceiverBroadcast Receiver
Broadcast Receiver
 
02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)02 programmation mobile - android - (activity, view, fragment)
02 programmation mobile - android - (activity, view, fragment)
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best Practices
 
Uninstall opera
Uninstall operaUninstall opera
Uninstall opera
 
Android Code Puzzles (DroidCon Amsterdam 2012)
Android Code Puzzles (DroidCon Amsterdam 2012)Android Code Puzzles (DroidCon Amsterdam 2012)
Android Code Puzzles (DroidCon Amsterdam 2012)
 
Android For All The Things
Android For All The ThingsAndroid For All The Things
Android For All The Things
 
Paradigmas de linguagens de programacao - aula#9
Paradigmas de linguagens de programacao - aula#9Paradigmas de linguagens de programacao - aula#9
Paradigmas de linguagens de programacao - aula#9
 
E:\Plp 2009 2\Plp 9
E:\Plp 2009 2\Plp 9E:\Plp 2009 2\Plp 9
E:\Plp 2009 2\Plp 9
 
How to recognise that the user has just uninstalled your android app droidc...
How to recognise that the user has just uninstalled your android app   droidc...How to recognise that the user has just uninstalled your android app   droidc...
How to recognise that the user has just uninstalled your android app droidc...
 
How to recognise that the user has just uninstalled your android app
How to recognise that the user has just uninstalled your android appHow to recognise that the user has just uninstalled your android app
How to recognise that the user has just uninstalled your android app
 
Android Lab Test : Using the sensor gyroscope (english)
Android Lab Test : Using the sensor gyroscope (english)Android Lab Test : Using the sensor gyroscope (english)
Android Lab Test : Using the sensor gyroscope (english)
 
Integrando sua app Android com Chromecast
Integrando sua app Android com ChromecastIntegrando sua app Android com Chromecast
Integrando sua app Android com Chromecast
 
Android accelerometer sensor tutorial
Android accelerometer sensor tutorialAndroid accelerometer sensor tutorial
Android accelerometer sensor tutorial
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 

Mais de Ricardo Longa

Big Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoBig Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoRicardo Longa
 
JSR 339 - Java API for RESTful Web Services
JSR 339 - Java API for RESTful Web ServicesJSR 339 - Java API for RESTful Web Services
JSR 339 - Java API for RESTful Web ServicesRicardo Longa
 
Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Ricardo Longa
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidRicardo Longa
 
Da introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowDa introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowRicardo Longa
 

Mais de Ricardo Longa (8)

Big Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoBig Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenho
 
Adopt a JSR
Adopt a JSRAdopt a JSR
Adopt a JSR
 
JSR 339 - Java API for RESTful Web Services
JSR 339 - Java API for RESTful Web ServicesJSR 339 - Java API for RESTful Web Services
JSR 339 - Java API for RESTful Web Services
 
JBoss Forge 2
JBoss Forge 2JBoss Forge 2
JBoss Forge 2
 
Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 
Open Networking
Open NetworkingOpen Networking
Open Networking
 
Da introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools FlowDa introdução à prática com Drools Expert e Drools Flow
Da introdução à prática com Drools Expert e Drools Flow
 

Último

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 

Último (20)

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 

Aula 29/05 (AlarmManager)

  • 2. Objetivos da aula  AlarmManager
  • 3. Qual a maneira mais correta para disparar uma intent as 15:00:30 de cada dia?
  • 4. Android nos facilita com AlarmManager...
  • 5.
  • 6.
  • 7. Podemos predizer o futuro...
  • 8. Podemos disparar uma Intent na data e hora desejada.
  • 9. Depois que ativamos o alarme, podemos até esquecê-lo.
  • 10. O alarme só será cancelado por nós ou caso o device seja reiniciado.
  • 11.
  • 12. public class ExemploAlarme extends Activity { public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); } }
  • 13. public class ExemploAlarme extends Activity { public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); } private void agendarPara10Segundos() { } }
  • 14. public class ExemploAlarme extends Activity { public void onCreate(Bundle savedInstanceState) { ... agendarPara10Segundos(); } private void agendarPara10Segundos() { Intent intencao = new Intent("ALARME_TESTE"); } }
  • 15. 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); } }
  • 16. 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()); } }
  • 17. 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(); } }
  • 18. 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); } }
  • 19. 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); } }
  • 20. 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...
  • 21. public class ReceberAlarme extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show(); } }
  • 22. public class ReceberAlarme extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show(); } }
  • 23. public class ReceberAlarme extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Alarme recebido!", Toast.LENGTH_LONG).show(); } }
  • 25. <?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>
  • 26. <?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>
  • 27. <?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>
  • 28. <?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>
  • 29. Como cancelar um alarme?
  • 30. 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(); } }
  • 31. 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"); } }
  • 32. 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); } }
  • 33. 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); } }
  • 34. 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); } }
  • 35. E para repetir o alarme a cada 30 segundos?
  • 36. 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); }
  • 37. 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); }
  • 38. 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); }
  • 39. Não utilize AlarmManager para simplesmente fazer uma Thread dormir por um determinado momento. Para isso, utilize Handler.
  • 40.