Broadcastreceiver发起了几项活动



当Android启动时,我正在从BroadcastReceiver启动MainActivty

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

这很好;MainActivity启动。问题是当我按MainActivity上的主按钮,然后再次打开应用程序。它不会恢复应用程序,而是创造了新的激活。如果我按下按钮完成(MainAttivity包含一个按钮以完成())主动脉再次出现,因为最后一个未关闭。请帮我,我不知道该怎么办。

我认为问题出在标志中,因为如果我再次打开应用程序,它可以正常运行(不从广播中启动)。

谢谢!

您可以尝试添加flag_activity_clear_task和flag_activitivitive_clear_top flags。

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

您可以尝试将Android:lainingMode =" singletop"添加到清单中的主要活性中,这说明活动的实例只能运行。因此,如果确实存在另一个实例,它将恢复它,而不是用新的实例替换。

祝你好运!

最新更新