[英]Repeating Alarm Notification (Android)
這樣行嗎?
public void setRepeatingAlarm() {
ArrayList<Integer> AlarmDays = datasource.getDays();
final int _id = (int) System.currentTimeMillis();
Log.d("AlarmManageDebt", String.valueOf(AlarmDays));
for (int i : AlarmDays) {
Calendar cal = Calendar.getInstance();
if (cal.get(Calendar.SECOND) >= 30)
cal.add(Calendar.MINUTE, 1);
cal.set(Calendar.SECOND, Integer.valueOf(i));
Intent intent = new Intent(this, TimeAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, _id,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
60 * 1000, pendingIntent);
}
}
我有一個未定的ID用於endingIntent,並且警報中唯一不同的是“ i”變量,該變量根據數據庫行為它賦予新的秒數(最終,這將是每日通知,而“ i”代表一天) ,而不是一秒鍾。但這只是出於測試目的,我已經確認在“ i”中傳遞了正確的數據。我不確定這是否會產生三個不同的警報?
那我要在這里創建多個警報嗎? 還是每個循環都有效地替代了剛剛創建的循環?
僅根據文檔的內容,我可以想象您只有一個AlarmManager:
“如果已為此計划調度了一個警報(兩個意圖的相等性由filterEquals(Intent)定義),則將其刪除並替換為該警報。” http://developer.android.com/reference/android/app/AlarmManager.html
這是確定Intent相等性的方法: http : //developer.android.com/reference/android/content/Intent.html#filterEquals(android.content.Intent )
基於此,即使您有PendingIntent的唯一ID,我也不會說。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.