我已经安排了多个警报管理器在不同时间发送意图。我注意将唯一 ID、上下文和附加信息传递给两个待处理的意图。下面的 func 处理警报调用。.
public void handle(int duration, int id){
Intent intent = new Intent("package.SET");
intent.putExtra ("package.id", Id);
AlarmManager amg = (AlarmManager)Context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pis = PendingIntent.getBroadcast(Context,Id, intent, FLAG_ONE_SHOT);
amg.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + time, pis); }
有 2 个函数调用警报
public void callalarm(int time){
handle(time, UNIQUE_ID1);}
和
public void callalarm2(int time){
handle(time, UNIQUE_ID2);}
我注意到唯一 ID1 和 Unique_ID2 是不同的。广播接收器处理警报并执行另一个代码。Callalarm1 和 callalarm2 是否有可能相互干扰。
我已经使用 registerReceiver 函数注册了接收器,而不是在 android 清单文件中。
IntentFilter ARFilter = new IntentFilter();
ARFilter.addAction("package.SET");
context.registerReceiver(AR, ARFilter);
在扩展广播接收器的 AR 中,我使用 id 来定义动作。
public BroadcastReceiver AR= new BroadcastReceiver()
{ public void onReceive(Context context, Intent intent)
{ // i do some stuff here which is confidential
}}
问题是,我的警报延迟了。有延迟的原因吗?