BroadcastReCeiver 内部实现

Abd*_*dul 5 android broadcastreceiver android-service intentservice android-broadcastreceiver

我试图了解广播接收器在内部是如何工作的。

当我调用registerReceiver()方法时,内部会发生什么?它是否在内部创建服务?

当我打电话时,内部会发生什么sendBroadcast

如果我必须实现我自己的BroadcastReceiver类(不扩展 AndroidBroadcastReceiver类),我该如何实现?

我做了很多研究,但我只找到了BroadcastReceiver工作原理。我也查看了 Android 源代码以了解其工作原理,但也无济于事。

Dav*_*ser 0

您写道,您需要实现一个BroadcastReceiver而不扩展 Android BroadcastReceiver。这不可能。Android 框架负责将所有广播分派并传递Intent给所有已将自己注册为这些广播的侦听器的组件Intent。当某些应用程序调用 时sendBroadcast(),Android 会检查是否有任何BroadcastReceiver已注册为该监听器的监听器Intent,如果找到,则会实例化该组件(如果尚未实例化),然后调用该组件的onReceive()方法。

如果您不扩展 Android,BroadcastReceiver则无法将您的组件注册为侦听器,并且 Android 不会调用您的类' onReceive()

注意:如果您需要更多帮助,请解释您真正想要做什么。