BroadcastReceiver如何工作属于应用程序状态?

时间:2018-11-13 09:47:14

标签: android android-broadcastreceiver

我的问题是关于应用程序“死”时接收方的行为-接收方是否也会随之死亡,或者它们仍在内存中工作?

我的问题是关于这种情况的-我听不到“应用程序已损坏”操作,无法仔细执行“ unregisterReciever”。 所以我想知道-内存中的接收器会发生什么情况属于应用程序状态。

PS-像在“活动的”“停止”中注销一样的方法不适合我的情况。

1 个答案:

答案 0 :(得分:1)

好!接收器是否会死/毁灭的行为(就执行而言)取决于您注册的接收器的类型。如果要在应用清单Manifest-declared receivers中注册BroadcastReceiver,则在应用关闭后,BroadcastReceivers不会像官方文档所述那样死亡。

  

系统创建一个新的BroadcastReceiver组件对象来处理   收到的每个广播。该对象仅对   调用onReceive(Context,Intent)的持续时间。一旦你的代码   从此方法返回,系统不再认为该组件   活跃。

     

如果您在清单中声明了广播接收器,则系统   在以下情况下启动您的应用程序(如果该应用程序尚未运行)   广播已发送。

BroadcastRecievers的其他类型是Context-registered receivers。 上下文注册的接收者是指那些接收者:

  

只要广播的注册上下文有效,就可以接收广播。对于   例如,如果您在“活动”上下文中注册,则会收到   只要活动不被破坏就广播

在这种情况下,当链接的组件的上下文被破坏时,BroadcastReciever也将被破坏。