我如何杀死一个活动-Android

我如何杀死一个活动-Android,android,android-activity,Android,Android Activity,我使用startActivity(Intent)在Android应用程序中创建一个新活动 是否有可能终止其中一项活动?如果有,如何终止 我实际上想做的是,假设我有4个活动同时运行,按照这个顺序打开 活动1->活动2->活动3->活动4 当用户按下后退按钮时,而不是继续 Activity4->Activity3->Activity2->Activity1->关闭应用程序 我想要这样 活动4->活动1->关闭应用程序是的,您可以这样做 将此标记添加到清单中的Activity3和Activity2:

我使用startActivity(Intent)在Android应用程序中创建一个新活动

是否有可能终止其中一项活动?如果有,如何终止

我实际上想做的是,假设我有4个活动同时运行,按照这个顺序打开

活动1->活动2->活动3->活动4

当用户按下后退按钮时,而不是继续

Activity4->Activity3->Activity2->Activity1->关闭应用程序

我想要这样

活动4->活动1->关闭应用程序

是的,您可以这样做

将此标记添加到清单中的Activity3和Activity2:

android:noHistory="true"

这样,这些活动就不会添加到backbackback中,因此按下Activity4上的back按钮将使用户转到Activity1。(在活动3和2中也会发生同样的情况。)

当您开始序列中的下一个活动时,可以使用
finish()
方法关闭活动2和3。这将使您从4变为1,但也将从3变为1

第一个Activity1应该在singleTop的清单中有一个特殊的集合。这将确保如果Activity1已位于堆栈顶部,则不会创建另一个版本的Activity1

对于需要特殊后退按钮行为的每个活动,都应该覆盖。在onBackPressed内部执行以下代码:

    public void onBackPressed () {
            Intent goBackTo1 = new Intent(this, Activity1.class);
            goBackTo1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(goBackTo1);
    }
上面的代码将启动Activity1,但在此之前,它将清除历史堆栈中Activity1之后的所有活动。当这种情况发生时,Activity1将获得一个新的意图,该意图将传递给方法中已经运行的Activity1

例:

如果他们实现了上面的代码,那么当从2、3或4调用onBackPressed时,就会变成这样。您可能需要考虑基本活动类,而不是复制代码。

    Activity1

实现这一点的方法有很多。你试过搜索吗?
    Activity1