2016-11-26 86 views
0

我在清单中注册我的广播接收器。 我想知道什么时候广播接收机可以取消注册的系统或任务杀手(一些附带系统)当广播接收器可能未注册

在旧的Android版本,似乎如果你强制停止应用程序,它的广播接收器将不会再打电话。我在Android 6或7上测试了这个接收器,并且调用了接收器(你强制关闭应用程序,一分钟你没有接到任何电话,但之后似乎你的应用程序又恢复了生命)

在小米手机上如果AutoStart未启用,您的广播接收机将不会被呼叫。

是否还有其他我应该知道的情况?如果是,那么这个问题的解决方案是什么?

感谢

回答

0

使用unregisterReceiver(广播接收器接收器)在您的onPause()来注销广播接收机。对于服务:从清单文件中删除接收器标签。然后,您可以在onCreate()中使用相同的方法注册您的Broadcast接收器,并在onDestroy()中取消注册。

+0

重点是保持我的接收器注册。我为什么要取消注册我的接收器? :) – user1611597

1

你可以使用unRegister(你的broadcastreceiver)中的onDestroy()覆盖方法。 因此,当您的应用程序被销毁时,它将取消注册。对于您的问题,为什么取消注册广播接收器是因为如果您没有注销它,那么它将导致内存泄漏。因此更好的代码实践是取消注册接收器。