我有以下 2 项活动(加上对这个问题不重要的更多活动):
<activity android:name=".activities.HomeActivity" android:excludeFromRecents="true" />
<activity android:name=".activities.AdHocActivity" android:noHistory="true"/>
HomeActivity
是我为之保留历史的第一个也是唯一一个。用户可以从 Home 转到不同的地方,然后单击 Back 以返回主 HomeActivity。
我也有服务在警报运行并检查一些特定的事情。当满足特定标准时,我将展示我的AdHocActivity
Intent i = new Intent(context, AdHocActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra(BlockingActivity.INTENT_BLOCKED_PACKAGE_NAME, packageName);
context.startActivity(i);
FLAG_ACTIVITY_NEW_TASK
必须显示来自 BroadcastReceiver 的 Activity
现在,这个 AdHoc 活动向用户显示了一些消息,并有一个按钮让用户返回HomeActivity
private void sendToMainApplication()
{
Intent i = new Intent(this, HomeActivity.class);
startActivity(i);
finish();
}
所有这些工作,但我得到了堆栈中的第二个实例。HomeActivity
所以现在当用户点击“返回”时 - 我的主页活动会闪烁并返回(以前的副本)。
我只想要一个副本保持领先。我希望它像主播一样。如果它不存在 - 我想打开一个新的。