在清单中注册时是否需要注销Android Broadcastreceiver?

在清单中注册时是否需要注销Android Broadcastreceiver?,android,filter,broadcastreceiver,Android,Filter,Broadcastreceiver,这主要是一个问题,当我动态注册一个Broadcastreceiver时,它需要在ondestory上注销。但是当Broadcastreceiver在清单中注册时,我们需要注销它吗?您不能注销清单注册的接收者。如果接收器已启用,它将始终收听广播。添加广播接收器时应小心,因为不必要的广播接收器会耗尽电池电量 如果您将广播接收器添加到Android清单文件中,这意味着您将在广播接收器中处理特定意图,而不是忽略它 您可以使用PackageManager启用/禁用清单中声明的BroadcastReceiv

这主要是一个问题,当我动态注册一个
Broadcastreceiver
时,它需要在
ondestory
上注销。但是当
Broadcastreceiver
在清单中注册时,我们需要注销它吗?

您不能注销清单注册的接收者。如果接收器已启用,它将始终收听广播。

添加广播接收器时应小心,因为不必要的
广播接收器会耗尽电池电量

如果您将广播接收器添加到Android清单文件中,这意味着您将在广播接收器中处理特定意图,而不是忽略它

您可以使用
PackageManager
启用/禁用清单中声明的
BroadcastReceiver
广播接收器
只有在启用时才会被触发

有关更多信息,请参阅

有一种方法可以启用和禁用添加到清单文件中的广播接收器


请参阅此帖子

了解有关电池的真实信息!是的,我正在使用一个蓝牙连接,但我的应用程序有几个活动。当以动态方式注册时,当主活动之外的其他活动开始时,它似乎停止了,但当在清单中注册时,它工作得很好。但即使在发生灾难后,它仍会继续。我计划在onDestroy上禁用它们。顺便说一下,你的链接非常有用!请告诉我如何将舱单注册接收人设置为禁用?我尝试了android:enabled=“false”,并在onStrat()中检查了接收器是否已启用,但我发现它始终处于组件启用状态_DEFAULT@user2121:嗯,
android:enabled=“false”
应该可以工作。您可以通过调用
PackageManager
上的
setComponentEnabledSetting()
以编程方式更改它。