0

我需要在广播接收器中接收广播事件,然后将此信息传递给已经打开的活动。如何在不重新创建广播接收器的情况下通知活动?这会导致不需要的完全刷新。

现在我可以在活动中声明的广播接收器中接收意图,但我也需要在其在后台接收意图,因此我处理意图的主要位置是在单独的广播接收器中。所以我只是不知道如何在没有调用 onCreate() 并重新初始化整个 UI 的情况下通知活动新意图已经到达。

我想我需要 NEW_TASK 标志,否则它不会运行。

PS:这些疯狂的反对票是关于什么的。有什么比如何以不重新创建活动的方式从广播接收器开始活动更相关的。顺便说一句,我会和你一起找到答案。为什么会有痛苦的反对票?我怀疑这是因为您知道我可以使用答案。好吧,我可能很快就会自己发布这个好问题的答案。

4

2 回答 2

2

如果您想重新创建此活动,请执行以下操作:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

如果不想重新创建,只需执行以下操作:

  • 而这个活动在你的任务顶部,<code>intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
  • 在清单中声明活动:android:lauchMode= "singleTask";
于 2012-12-12T03:57:42.170 回答
1

而答案是......

在清单中声明活动

  android:launchMode="singleTop"

仍然希望对此答案的反馈,因为我注意到在 onResume() 中,意图似乎没有像以前那样继承值。所以我无法提取我在广播接收器内的意图设置的值......

更新:为了从接收器获取值,您可能需要在 Activity 中执行以下操作:

             @Override 
     public void onNewIntent(Intent intent)
     {
         setIntent(intent);
     }
于 2012-12-12T03:38:27.113 回答