1
我想使用警報來觸發某些處理。使用多個警報
在下面的代碼中,我試圖設置兩個警報。他們觸發一個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);
}
}