2015-10-08 90 views
1

我正在創建一個Android應用程序,它以編程方式創建應用程序關閉時保留的警報。爲了有報警堅持,我只好定義接收器在我的清單如下所示:具有清單聲明的獨特PendingIntent

<receiver 
android:name="com.blah.blah.AlarmReceiver" 
android:enabled="true" 
android:exported="true" > 
<intent-filter android:priority="999" > 
    <action android:name="com.blah.blah.ALARM" /> 
</intent-filter> 
</receiver> 

這裏是我當前如何創建PendingIntents ..

Intent intent = new Intent(ACTION_ALARM); 
PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
AlarmManager manager = (AlarmManager (this.getSystemService(Context.ALARM_SERVICE)); 

由於我使用的是常量ACTION_ALARM,所有警報連接到相同的PendingIntent,因此調用.cancel()將刪除所有警報。但是,我想刪除特定的警報實例。我知道創建一個獨特的PendingIntent的唯一方法是指定一個獨特的動作,這與在上面定義我的Receiver在Manifest中存在衝突。有沒有其他方法可以爲我的警報製作可區分的PendingIntents?我也嘗試添加數據,但似乎沒有觸發清單中的Receiver。

或者,如果我以編程方式爲每個鬧鐘啓動一個接收器,有沒有辦法讓這些應用程序關閉時持續存在?

謝謝。

回答