我想了解广播接收器的内部工作原理。
当我调用 registerReceiver()
方法时内部发生了什么?它是否在内部创建服务?
当我调用 sendBroadcast
时内部会发生什么?
如果我必须实现自己的 BroadcastReceiver
类(不扩展 Android BroadcastReceiver
类)我该如何实现?
我做了很多研究,但我只发现了 BroadcastReceiver
是如何工作的。我也查看了 Android 源代码以了解它是如何工作的,但它也没有帮助。
最佳答案
您写道,您需要在不扩展 Android BroadcastReceiver
的情况下实现 BroadcastReceiver
。这不可能。 Android 框架处理所有广播 Intent
的分派(dispatch)和传递到所有已将自己注册为这些 Intent
的监听器的组件。当某些应用程序调用 sendBroadcast()
时,Android 会检查是否有任何 BroadcastReceiver
已注册为该 Intent
的监听器,如果找到,它会实例化组件(如果尚未实例化),然后调用组件的 onReceive()
方法。
如果您不扩展 Android 的 BroadcastReceiver
,您将无法将您的组件注册为监听器,Android 也不会调用您的类的 onReceive()
。
注意:如果您需要更多帮助,请说明您真正想做什么。
关于android - BroadcastReCeiver 内部实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34754615/