2011-12-26 45 views
1

當使用AlarmManager時,我設置了很多定時器,每個定時器用於不同的廣播接收器, ,它們會自動合併與否?AlarmManager定時器

Intent intent = new Intent(TimeModeService.this,TimeModeReceiver.class); 
    intent.setAction("startTimeMode"); 
    PendingIntent startIntent = PendingIntent.getBroadcast(getApplicationContext(),1000, intent,0); 
    can.set(Calendar.HOUR_OF_DAY, startHour); 
    can.set(Calendar.MINUTE,startMin); 
    alarmmanager.setRepeating(AlarmManager.RTC_WAKEUP, can.getTimeInMillis(), (24 * 60 * 60 * 1000), startIntent); 
+4

爲什麼不嘗試並告訴我們? – 2011-12-26 10:54:18

回答

1

在, PendingIntent.getBroadcast(getApplicationContext(),1000 /*this is requestCode*/, intent,0); 如果保持requestCode同爲的PendingIntent的不同實例,然後使用這些設置報警,他們應該合併,在安卓2.3.3,如果我把它同(用於啓動活動)只開展了一項活動。在這裏我會提到alarmManager.set被使用而不是alarmManager.setRepeating

我用int requestCode = (int)Calendar.getInstance().getTimeInMillis();以保持不同的pendingIntents的請求代碼不同。

Official Reference提到它作爲

requestCode  Private request code for the sender (currently not used). 

所以最好的方法是嘗試一下您的情況,但具有相同requestCode不同PendingIntents會合並。

+1

謝謝,對我有用!謝謝。 – 2011-12-26 11:24:00