1

我有以下 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所以现在当用户点击“返回”时 - 我的主页活动会闪烁并返回(以前的副本)。

我只想要一个副本保持领先。我希望它像主播一样。如果它不存在 - 我想打开一个新的。

4

1 回答 1

2

防止 HomeActivity 翻倍的技巧是这样称呼它:

private void sendToMainApplication()
    {
        Intent i = new Intent(this, HomeActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(i);
        finish();
    }
于 2012-06-07T02:51:07.090 回答