1

我定义了一个BatteryInfo extends BroadcastReceiver类。我在我的Activity onCreate(). 我Activity.registerReceiver在我的onCreate().

我试图弄清楚我是否需​​要注销它和/或设置它的引用以null允许我的 Activity 死掉而不会泄漏内存或阻塞系统中的意图发送者,或者系统是否优雅地抛出与此相关的所有内容它自己的。为此,我正在思考我读到 的BroadcastReceiver 生命周期:

BroadcastReceiver 对象仅在调用 onReceive(Context, Intent) 期间有效。一旦您的代码从此函数返回,系统就会认为该对象已完成且不再处于活动状态。”

这是什么意思?显然,我创建new BatteryInfo()和注册的对象在registerReceiver()我的活动持续的整个过程中都会持续存在。我记录了它的结果并一直看到它们。显然它在第一次onReceive()被调用后并没有失效。

我想知道这部分文档是否可能仅适用BroadcastReceivers于在AndroidManifest? BroadcastReceivers并且动态创建和注册 是完全不正确或无关的吗?

当然,我想知道什么是我的动态接收器的正确清理和干扰。

4

1 回答 1

1

您在代码中需要做的BroadcastReceivers就是注册和注销它们。该声明是通知您不能在 之外执行任何工作onReceive,例如在另一个线程中,并将值返回给BroadcastReceiver. 为此,您将获得BroadcastReceiver启动一个Service.

于 2012-05-14T18:25:46.593 回答