我想使用警报来触发一些处理。
在下面的代码中,我尝试设置两个警报。它们触发一个Service
显示一个Notification
指示刚刚响起的警报的 ID 号的 。
当第一个Alarm
熄灭时,Notification
应该出现并显示:“1”。对于第二个Alarm
,Notification
应该显示“2”。
如 Javadoc 中所述,仅触发了一个警报(它们具有相同的Intent
,因此第二个替换第一个)。但奇怪的是,Notification
显示“1”,而在第二个Alarm
熄灭的时候出现!!!似乎警报响起的时间已修改,但未修改。
任何想法?
提前感谢您花时间帮助我。
public class TestAlarmes extends Activity{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
AlarmManager am;
Intent action;
PendingIntent intent;
long t0;
RecepteurMessageAlarme récepteur;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// créer le récepteur de message d'alarme
récepteur=new RecepteurMessageAlarme();
// et l'enregistrer en lui demandant de filtrer sur les messages d'alarme
registerReceiver(récepteur,new IntentFilter("GL.TestAlarmes.ALARME"));
// récupérer le service d'alarme
am=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
// créer l'action 1
action=new Intent(this,ServiceAlarme.class);
action.setAction("GL.TestAlarmes.ALARME");
// personnaliser l'action a exécuter
action.putExtra("GL.TestAlarmes.Action",1);
// créer l'intent à lancer lors du déclenchement de l'alarme
intent=PendingIntent.getService(this,0,action,PendingIntent.FLAG_ONE_SHOT);
// prendre l'instant présent
t0=java.lang.System.currentTimeMillis();
// configurer l'alarme
am.set(AlarmManager.RTC_WAKEUP,t0+5000,intent);
// créer l'action 2
action=new Intent(this,ServiceAlarme.class);
action.setAction("GL.TestAlarmes.ALARME");
// personnaliser l'action a exécuter
action.putExtra("GL.TestAlarmes.Action",2);
// créer l'intent à lancer lors du déclenchement de l'alarme
intent=PendingIntent.getService(this,0,action,PendingIntent.FLAG_ONE_SHOT);
// configurer l'alarme
am.set(AlarmManager.RTC_WAKEUP,t0+10000,intent);
}
}