2013-03-31 99 views
0

我開發了一個android應用程序來通過警報管理器觸發通知。 現在我要取消一個報警的是火了通知我看到這個代碼,但它會刪除所有報警 如何刪除一個報警我想如何刪除一個警報而不是所有警報?

Intent intent = new Intent(this, AlarmReceive.class); 
PendingIntent sender = PendingIntent.getBroadcast(this, 
       0, intent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

// this line for cancellation 
alarmManager.cancel(sender); 

回答

0

cancel的醫生說:

刪除任何具有匹配意圖的警報。任何類型的意圖與其匹配的警報(由filterEquals(Intent)定義)將被取消。

所以,如果你想能夠刪除一個特定的意圖,你必須能夠區分你正在啓動的所有意圖。 如果您的意圖是明確的,我建議在創建後添加一個Action。

通過這種方式,filterEquals將考慮到這一點,並只刪除相關的一個。

喜歡的東西:

Intent intentYouWantToCancel = new Intent(this, AlarmReceive.class); 
intentYouWantToCancel.setAction("aRelevantString"); 

當你設置alarmmanager以及當你想將它刪除。