我有4页。
从第 1 页 > 第 2 页 > 第 3 页 > 第 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 不应该有任何导航历史记录?
我不确定这些方法是否适合您。第一种方法是添加FLAG_ACTIVITY_TASK_ON_HOME
当您从 page_3 转到 page_4 时:
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 中按“返回”按钮,它会首先将您引导至 HOME 活动(MainActivity),然后您可以再次按“返回”按钮从该活动中退出应用程序。
来自文档:
如果在传递给的 Intent 中设置Context.startActivity()
,此标志将导致新启动的任务被放置在当前主活动任务的顶部(如果有)。也就是说,从任务中按回总是会让用户返回主页,即使这不是他们看到的最后一个活动。这只能与FLAG_ACTIVITY_NEW_TASK
.
第二种方法是,设置android:noHistory="true"
在清单中的活动内。将此属性应用于 page_1 到 page_4。但这种方法有两个缺点。首先,您的 Activity 完全没有后台堆栈。其次,一旦您按下 HOME 按钮或接到来电,您使用此属性设置的活动就会被销毁。我从来没有找到这个主题,所以请CMIIW。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)