gpt4 book ai didi

java - Android - 清除导航后退栈

转载 作者:行者123 更新时间:2023-11-30 08:53:36 24 4
gpt4 key购买 nike

我有 4 页。

来自 page_1 > page_2 > page_3 > page_4。

一旦用户到达 page_3 并单击按钮,它就会导航到 page_4。单击按钮后,我想清除所有导航历史记录,以便当用户返回 page_4 时,应用程序退出而不是返回 page_3。

我试过:

    Intent intent = new Intent(this, page_4.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();

但是没有任何反应。我仍然可以返回到 page_3、page_2 等。我该如何做到这一点,以便当用户单击 page_3 上的按钮时,他会转到 page_4,而 page_4 不应该有任何导航历史记录?

最佳答案

我不确定这些方法是否适合您。第一种方法是在从 page_3 转到 page_4 时添加 FLAG_ACTIVITY_TASK_ON_HOME:

Intent intent = new Intent(this, page_4.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME);
startActivity(intent);

因此,一旦您在 page_4 中按 BACK 按钮,它会首先将您定向到 HOME Activity (MainActivity),然后您可以再次按 BACK 按钮从该 Activity 中退出应用。

来自文档:

If set in an Intent passed to Context.startActivity(), this flag will cause a newly launching task to be placed on top of the current home activity task (if there is one). That is, pressing back from the task will always return the user to home even if that was not the last activity they saw. This can only be used in conjunction with FLAG_ACTIVITY_NEW_TASK.

第二种方法是,在 list 中的 Activity 中设置 android:noHistory="true"。将此属性应用于 page_1 到 page_4。但是这种方法有两个缺点。首先,您的 Activity 完全没有返回堆栈。其次,一旦您按下主页按钮或接到来电,您使用此属性设置的 Activity 就会被销毁。我从来没有找到这个主题,所以请 CMIIW。

关于java - Android - 清除导航后退栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29729409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com