AlarmManager计时器 [英] AlarmManager timer
问题描述
在期运用AlarmManager,我设置很多定时器,每一个定时器用于不同的广播接收器,
他们会自动合并或不?
意向意图=新意图(TimeModeService.this,TimeModeReceiver.class);
intent.setAction(startTimeMode);
的PendingIntent startIntent = PendingIntent.getBroadcast(getApplicationContext(),1000,意向,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);
在, PendingIntent.getBroadcast(getApplicationContext(),1000 / *这是要求code * /,意向,0);
如果你保持请求code同为的PendingIntent的不同实例,然后设置报警使用它们,他们应该合并,在android系统2.3.3,如果我保持相同(开始一个活动)只有一个活动的开始。在这里,我想提的是 alarmManager.set
使用不 alarmManager.setRepeating
。
我用INT 请求code =(INT)Calendar.getInstance()getTimeInMillis()
。保持请求code代表不同pendingIntents不同。
但是,<一个href=\"http://developer.android.com/reference/android/app/PendingIntent.html#getBroadcast%28android.content.Context,%20int,%20android.content.Intent,%20int%29\"相对=nofollow>官方参考提到它作为
请求code私人请求,code发件人(目前未使用)。
所以最好的方法是尝试为您的情况,但有相同的请求code不同PendingIntents将合并。
When useing AlarmManager ,i set many timers,each timer for different broadcast receiver, and they will auto merge or not?
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);
In,
PendingIntent.getBroadcast(getApplicationContext(),1000 /*this is requestCode*/, intent,0);
If you keep the requestCode same for different instances of PendingIntent, and then set alarm using them, they should merge, in android 2.3.3, if i keep it same (for starting an activity) only one activity started. Here i would mention that alarmManager.set
was used not alarmManager.setRepeating
.
I used int requestCode = (int)Calendar.getInstance().getTimeInMillis()
; to keep the request code different for different pendingIntents.
But Official Reference mentions it as
requestCode Private request code for the sender (currently not used).
So the best way is to try it for your situation, but different PendingIntents with same requestCode would merge.
这篇关于AlarmManager计时器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!