我的困惑是 -
如果上下文注册的接收器只要他们的注册上下文有效就会收到广播 - 那么如果应用未启动,应如何收到通知。
在清单声明的接收器中,接收器应用程序将由系统启动,那么它如何用于上下文注册的接收器?
答案 0 :(得分:0)
无论如何,您需要context
以Broadcasts
onReceive
方法接收BroadcastReceiver
对于 Manifest-registered 接收器,如果应用程序未运行,则系统可能启动应用程序并在应用程序当前未运行时传送广播。在onReceive()
之后,系统可以随时终止进程以回收内存。在这种情况下通过的context
是:
上下文类:android.app.ReceiverRestrictedContext
申请背景:android.app.Application
对于上下文注册的收件人,Broadcasts | Android Developers中明确说明了这一点:
只要注册上下文有效,上下文注册的接收器就会接收广播。例如,如果您在“活动”上下文中注册,则只要活动未被销毁,您就会收到广播。如果您在应用程序上下文中注册,则只要应用程序正在运行,您就会收到广播。
答案 1 :(得分:0)
如果您在清单中声明BroadcastReceiver
,Android会创建BroadcastReceiver
的实例,并在想要发送广播时调用onReceive()
{ {1}}到该接收者(基于指定的Intent
条件。