我想使用AlarmManager来安排重复任务。基本上,我有这个代码:
Intent intent = new Intent(INTENT_ACTION_TICK);
// The following line prevents the broadcast receiver from being notified:
intent.setClass(context, MyScheduler.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, intervalInMs, intervalInMs, pendingIntent);
我在其构造函数中注册MyScheduler
作为广播接收器:
context.registerReceiver(this, new IntentFilter(INTENT_ACTION_TICK));
除非我添加intent.setClass
,否则一切都按预期工作(接收器被触发)。但是,对我来说很好,我清楚地记得你出于安全原因应该使用显式意图(intent.setClass
)。
这是我必须考虑的用例吗?