2011-12-26 16 views
1

AlarmManagerを使用する場合、私は多くのタイマーを設定します。それぞれのタイマーは異なる放送受信機の に設定されています。AlarmManager timer

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); あなたはPendingIntentの異なるインスタンスに同じrequestCodeを維持し、それらを使用してアラームを設定した場合、私は同じことを続けるならば、彼らは開始のために(、アンドロイド2.3.3で、マージする必要がありますアクティビティ)が開始されたアクティビティは1つだけです。ここでは、alarmManager.setalarmManager.setRepeatingではないことを言及します。

私はint requestCode = (int)Calendar.getInstance().getTimeInMillis()を使用しました。 pendingIntentsごとに要求コードを異ならせます。

しかしOfficial Reference

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

としてそれに言及ので、最良の方法は、あなたの状況のた​​めにそれを試してみることですが、同じrequestCodeと異なるPendingIntentsマージでしょう。

+1

ありがとう、それは私にとって便利です!谢谢。 –