应用程序转到后台时取消注册广播接收器

时间:2015-07-05 14:46:02

标签: android broadcastreceiver android-service android-broadcast

我需要检查应用程序中的网络连接。如果没有互联网连接,什么都不应该。我已经使用BroadcastReceivers实现了,但是当我的应用程序在后台时,我希望接收器未注册(即不被调用)。接收器应该只在用户使用应用程序时才能工作。

最初,我在我的清单中注册了一个广播接收器,但我注意到即使我的应用程序处于后台时它也被解雇了。所以,我放弃了这个主意。

然后,我在onResume()中注册了接收器,并在onPause()中注册了。但是,问题在于,如果我从应用程序的活动A转到活动B,则接收器在A的onPause()上取消注册,并再次在B的onResume()中注册。这使得活动转换变得很重。即使在这种情况下,也不应该发生取消注册和注册过程。

我只希望接收者在用户停止使用应用时取消注册,而不是在活动转换期间取消注册,但是当应用在后台时,它也应该不能继续运行。我想过使用服务,但我想检测网络连接的变化,这对接收器来说是最好的。

那么,有没有办法检测应用程序何时进入后台,以便我可以取消注册我的接收器?如果没有,达到我要求的最佳方式是什么?

我有代码用于注册,取消注册接收器以及检测连接性更改。

1 个答案:

答案 0 :(得分:1)

查看此tutorial并在正确的位置注册/取消注册您的接收器。