只要我的活动正在运行,我可以收到意图吗?

时间:2015-06-17 13:00:10

标签: android android-intent android-activity

我有一个Activity,只要它正在运行就需要接收广播意图。当您阅读Android开发人员文档时,会出现此问题:

我必须在活动结束前取消注册接收器。建议的方法是在onResume中注册并在onPause中取消注册。但是,这不符合我的要求,因为我必须检测从Intent中的其他应用程序发送的Activity(但只要我在后台,如果我的Activity因任何原因而关闭,我不关心Intent)。

所以,我的问题是: 我不希望在收到意图时创建Activity,所以我不想将它添加到我的AndroidManifest中。但只要我的Activity还活着(在前面或后面),我就需要收到所发送的特定种类的Intent。 怎么做到这一点?

2 个答案:

答案 0 :(得分:0)

  1. 将BroadcastReceiver添加到AndroidManifest。
  2. 在您的活动中添加静态状态持有者。

    public static AtomicBoolean sActivityDestroyed = new AtomicBoolean(false);

  3. 在Activity onResume中将其设置为false,在onDestroy中将其设置为true。

    1. 在您的BroadcastReceiver中,检查活动状态是否为false。如果是,那就做你的事。

答案 1 :(得分:0)

在您的活动BroadcastReceiver中注册onCreate(),并在onDestroy()中取消注册。即使您的活动已暂停且在后台,也会调用onReceive()。当你的应用程序被杀死(或者你的应用程序退出)时,它将不再被调用。