broadcastreceiver发起了几项活动

时间:2014-01-24 20:23:10

标签: android

我在Android启动时从MainActivty启动BroadcastReceiver

Intent miIntent = new Intent(this, MainActivity.class);
miIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
this.startActivity(miIntent);

这很好用; MainActivity已启动。问题是我按下MainActivity上的主页按钮然后再次打开应用程序。它不会恢复应用程序,而是会创建一个新的Activty。如果我按下按钮完成(MainActivity包含一个按钮来完成())MainActivity再次出现,因为最后一个没有关闭。请帮帮我,我不知道该怎么办。

我认为问题出现在标志中,因为如果我再次打开应用程序,它可以正常工作(无需从broadcastreceiver启动)。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试将FLAG_ACTIVITY_CLEAR_TASK和FLAG_ACTIVITY_CLEAR_TOP标记添加到您的意图中。

mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP |     Intent.FLAG_ACTIVITY_NEW_TASK);

旗帜活动清除顶部: http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

旗帜活动清除任务: http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TASK

OR

您可以尝试将android:launchMode =“singleTop”添加到清单中的MainActivity,这表示只会运行一个活动实例。因此,如果它的另一个实例确实存在,它将恢复它而不是用新的实例替换它。

祝你好运!