2011-12-26 5 views
1

AlarmManager를 사용할 때, 나는 많은 타이머를 설정하고, 각기 다른 방송 수신기 용 타이머 을 자동으로 병합 할 것인가 말 것인가? 당신이 PendingIntent의 다른 인스턴스에 대해 동일 requestCode가 유지 한 다음 전원을 사용하여 알람을 설정하면 내가 시작을 위해 (같은를 유지하는 경우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

왜 시도해보고 알려주세요. –

답변

1

에서, PendingIntent.getBroadcast(getApplicationContext(),1000 /*this is requestCode*/, intent,0); , 그들은 안드로이드 2.3.3에 병합한다 활동) 한 활동 만 시작되었습니다. 여기서 나는 alarmManager.setalarmManager.setRepeating이 아니라고 언급했다.

내가 사용했습니다. requestCode = (int)Calendar.getInstance().getTimeInMillis(); 요청 코드를 다른 pendingIntents에 대해 다른 것으로 유지합니다.

그러나 Official Reference

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

그래서 가장 좋은 방법은 상황에 그것을 시도하는 것입니다로 언급하지만, 같은 requestCode가 서로 다른 PendingIntents 병합 것입니다.

+1

고마워, 나에게 도움이된다! 고맙습니다. –