[英]Android BroadcastReceiver Lifecycle: documentation wrong for dynamically registered receiver?
我定义了BatteryInfo extends BroadcastReceiver
类。 我在Activity onCreate()
一次调用它的构造函数。 我在我的onCreate()
向Activity.registerReceiver
注册了它。
我试图弄清楚是否需要注销它和/或将其引用设置为null
才能使我的Activity死掉而不会泄漏内存或阻塞系统中的意图发送者,或者系统是否优雅地丢弃了与此相关的所有内容在其自己的。 为此,我正在考虑我的BroadcastReceiver生命周期 :
BroadcastReceiver对象仅在对onReceive(Context,Intent)的调用期间有效。 一旦您的代码从该函数返回,系统就会认为该对象已完成并且不再处于活动状态。”
这是什么意思? 显然,对象我与创建new BatteryInfo()
并与注册registerReceiver()
通过我的活动依然存在,整个时间持续。 我从中记录结果,并一直看到它们。 显然,它在第一次调用其onReceive()
之后并没有变得无效。
我想知道这部分文档是否仅适用于在AndroidManifest
中注册的BroadcastReceivers
? 并且它与动态创建和注册的BroadcastReceivers
完全不正确或无关吗?
当然,我想知道对我的动态接收器来说适当的清理和递减是什么。
您需要使用代码对BroadcastReceivers
进行的所有操作是注册和注销它们。 该语句通知您,您不能在onReceive
之外(例如在另一个线程中)进行任何工作,然后将值返回给BroadcastReceiver
。 为此,您可以让BroadcastReceiver
启动Service
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.