是否可以从活动堆栈中删除几个活动

时间:2018-07-30 08:56:42

标签: android android-layout android-activity

有许多活动可以触发我的应用中的registration activity

注册活动由5 activities个活动组成。现在,完成注册后,我希望将用户带到ProfilePageActivity,并且当用户按下ProfilePageActivity的后退按钮时,我希望带用户进入他们叫{{1 }}

如果我使用这些;

RegistrationActivity

它们将删除整个堆栈,并且当用户按下“后退”按钮时,它将退出应用程序。

我想知道是否有任何方法可以定义要从堆栈中删除的活动范围。

2 个答案:

答案 0 :(得分:1)

您可以使用TaskStackBuilder,请尝试

TaskStackBuilder.create(this)
                            .addNextIntent(mainActivityIntent())
                            .addNextIntentWithParentStack(myTripActivityIntent())
                            .startActivities();

函数是

private Intent mainActivityIntent() {
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        return intent;
    }

    private Intent myTripActivityIntent() {
        Intent intent = new Intent(this, MyTripActivity.class);
        return intent;
    }

答案 1 :(得分:1)

最好在Fragment中使用RegisterActivity

如果您仍然想这样做,则应使用startActivityforResult。当最后一个活动单击完成按钮时,请用RESULT_OK完成活动。现在在第4个活动检查结果中,如果它是RESULT_OK,请执行相同的过程,直到完成。涉及第一个活动RegisterActivity。现在,如果您得到RESULT_OK,请致电ProfilePageActivity