我的问题是关于应用程序“死”时接收方的行为-接收方是否也会随之死亡,或者它们仍在内存中工作?
我的问题是关于这种情况的-我听不到“应用程序已损坏”操作,无法仔细执行“ unregisterReciever”。 所以我想知道-内存中的接收器会发生什么情况属于应用程序状态。
PS-像在“活动的”“停止”中注销一样的方法不适合我的情况。
答案 0 :(得分:1)
好!接收器是否会死/毁灭的行为(就执行而言)取决于您注册的接收器的类型。如果要在应用清单Manifest-declared receivers
中注册BroadcastReceiver,则在应用关闭后,BroadcastReceivers不会像官方文档所述那样死亡。
系统创建一个新的BroadcastReceiver组件对象来处理 收到的每个广播。该对象仅对 调用onReceive(Context,Intent)的持续时间。一旦你的代码 从此方法返回,系统不再认为该组件 活跃。
如果您在清单中声明了广播接收器,则系统 在以下情况下启动您的应用程序(如果该应用程序尚未运行) 广播已发送。
BroadcastRecievers的其他类型是Context-registered receivers
。
上下文注册的接收者是指那些接收者:
只要广播的注册上下文有效,就可以接收广播。对于 例如,如果您在“活动”上下文中注册,则会收到 只要活动不被破坏就广播
在这种情况下,当链接的组件的上下文被破坏时,BroadcastReciever
也将被破坏。