我有一个Activity
,只要它正在运行就需要接收广播意图。当您阅读Android开发人员文档时,会出现此问题:
我必须在活动结束前取消注册接收器。建议的方法是在onResume
中注册并在onPause
中取消注册。但是,这不符合我的要求,因为我必须检测从Intent
中的其他应用程序发送的Activity
(但只要我在后台,如果我的Activity
因任何原因而关闭,我不关心Intent
)。
所以,我的问题是:
我不希望在收到意图时创建Activity
,所以我不想将它添加到我的AndroidManifest中。但只要我的Activity
还活着(在前面或后面),我就需要收到所发送的特定种类的Intent
。
怎么做到这一点?
答案 0 :(得分:0)
在您的活动中添加静态状态持有者。
public static AtomicBoolean sActivityDestroyed = new AtomicBoolean(false);
在Activity onResume中将其设置为false,在onDestroy中将其设置为true。
答案 1 :(得分:0)
在您的活动BroadcastReceiver
中注册onCreate()
,并在onDestroy()
中取消注册。即使您的活动已暂停且在后台,也会调用onReceive()
。当你的应用程序被杀死(或者你的应用程序退出)时,它将不再被调用。