2015-04-05 28 views
0

我正在嘗試爲不同的時序註冊多個事件。但是我面臨一個問題,我看到所有事件同時發生通知。在android中,無法在報警管理器中註冊多個事件

請在這裏找到我的代碼:

  long startTimeinMillies = element.start; // Starting time in ms 
      long currentTimeinMillies = System.currentTimeMillis(); 
      long Difference = startTimeinMillies - currentTimeinMillies; 
      Intent myIntent = new Intent(getBaseContext(),MyReceiver.class); 
      myIntent.putExtra(EVENT_DATA_EXTRA, element.title); // Unique value 
      int value = (int) element.id; // unique value 
      myIntent.putExtra(EVENT_DATA_EXTRA_ID, value); 
      myIntent.setAction(System.currentTimeMillis()+""); 
      PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(),value, myIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
      AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
      alarmManager.set(AlarmManager.RTC_WAKEUP, Difference,pendingIntent); 

請讓我知道,什麼錯誤。

回答

1

如果你說你正在執行的代碼幾次該塊,並期望你會得到幾個報警,這是行不通的。您的PendingIntent需要與標的Intent的附加值相差甚遠。現在,您正在替換現有的警報,而不是添加新警報。

將您的getBroadcast()呼叫中的0替換爲value。如果您的評論是正確的,並且value對於每個鬧鐘都是唯一的,那麼這應該足以讓您爲每個鬧鐘單獨提供PendingIntent對象。

+0

也做了同樣的事情。我編輯過我的問題。是的,這段代碼在for循環中運行多次,並設置不同的值。所有事件都在不同的時間點進行日曆記錄(差異約爲3-5分鐘),但不同的時間顯示不同的事件通知,它顯示所有事件的所有事件 – Aada 2015-04-05 11:18:16

+0

@Aada:然後使用**'adb shell dumpsys alarm' **來檢查實際上使用'AlarmManager'註冊的內容 – CommonsWare 2015-04-05 11:19:04