为什么AlarmManager的接收器没有Intent Filter?

时间:2016-07-03 18:25:05

标签: android broadcastreceiver alarmmanager intentfilter

我在我的项目中使用了Alarm Manger,我在我的Manifest中有这个声明。一切都在工作完美和精细,但我在脑海中有这样的询问,为什么以下

 <receiver android:name="wokerClasses.alarmReceiver"></receiver>

在onReceive()中处理接收器的类的声明没有intent-Filter?我想了解系统如何调用并识别这个特定的接收器和为什么没有其他sendBroadcast()调用这个接收器。

1 个答案:

答案 0 :(得分:0)

  

系统如何调用并识别此特定接收器

您正在使用PendingIntent创建getBroadcast(),其中包含标识此Intent的{​​{1}}。 BroadcastReceiver是显式Intent,用于标识组件的特定Java类。 Intent允许您有选择地授予其他进程(例如管理警报事件的Android核心进程),以便能够向该接收器发送广播,即使该接收器未导出。

  

为什么没有其他sendBroadcast()调用此接收器。

该接收器未导出;除了以下内容之外,系统上没有任何其他内容可以发送广播:

  • 您自己的代码
  • 任何人持有PendingIntent你给他们的人