2012-10-30 78 views
1

我想使用警報來觸發某些處理。使用多個警報

在下面的代碼中,我試圖設置兩個警報。他們觸發一個Service,顯示一個Notification表示剛剛熄滅的報警的ID號。

當第一個Alarm熄滅時,應出現一個Notification並顯示:「1」。 對於第二個AlarmNotification應顯示「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); 
} 

}

回答

0

嘗試給不同的請求代碼PendingIntent,使其具有唯一