我在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启动)。
谢谢!
答案 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,这表示只会运行一个活动实例。因此,如果它的另一个实例确实存在,它将恢复它而不是用新的实例替换它。
祝你好运!