簡體   English   中英

重復警報通知(Android)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM