我有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中按BACK按钮,它将首先将您定向到HOME活动(MainActivity),然后您可以再次按BACK按钮从该活动中退出该应用程序。
从文档:
如果在传递给的Intent中设置
Context.startActivity()
,则此标志将导致新启动的任务放置在当前家庭活动任务(如果有)的顶部。也就是说,从任务上按一下将始终使用户返回家中,即使这不是他们最后看到的活动。只能与结合使用FLAG_ACTIVITY_NEW_TASK
。
第二种方法是android:noHistory="true"
在清单中设置活动。将此属性应用于page_1到page_4。但是这种方法有两个缺点。首先,您的活动完全没有退步。第二,按HOME按钮或接到来电后,使用此属性设置的活动将被销毁。我从未找到此主题,所以请CMIIW。
我正在使用Android中新的导航架构组件。我有三个片断,逻辑片断,主片断,解决片断。主机片段是LoginFragment,登录成功时转到MainFragment,在MainFragment中转到SettingFragment,注销转到LoginFragment。
我已经从连接到NavController的导航抽屉中导航到了DialogFragment。但当我导航到另一个目标时,我已经将弹出窗口设置为包含对话框片段,但它并没有清除堆栈。如何清除堆栈? AM从LogoutDialog调用此方法 我只使用片段和一个活动。 这是我导航图的一部分
当显示主片段时,我试图清除后堆栈中的所有片段。在导航图中,我添加了这个动作 在登录片段中。我尝试了findNavController()。导航(LoginFragmentDirections.actionLoginFragmentToHomeFragment()) 和 我从这里的文件中了解到https://developer.android.com/guide/navigation/navigat
我是Android Jetpack导航架构的新手。我正在一个新应用程序上试用它。有一个活动和一些片段,其中两个是登录屏幕和电子邮件登录屏幕。我在我的导航XML中定义了这些片段。应用程序的流程如下: 登录屏幕→ <代码>电子邮件登录屏幕 我想要的是,在导航到电子邮件登录屏幕后,当我向后按时,应用程序退出。这意味着登录屏幕的后堆栈被删除了。我知道登录屏幕不应该这样工作,但我仍然只是在解决问题。 我遵循
我正在使用android中的新导航架构组件,在移动到一个新的片段后,我被困在清除导航堆栈中。 示例:我在loginFragment中,当我导航到home片段时,我希望该片段从堆栈中清除,这样当用户按下back按钮时,他就不会返回到loginFragment。 我正在使用一个简单的navhostfragment.findnavcontroller(Fragment).navigate(r.id.ho
我有一个包含FragmentStatePagerAdapter的活动在这个FragmentStatePagerAdapter中有三个片段。或者,当调用适当的getItem()时,它们会被启动。 该活动执行数据密集型任务,完成后发送广播。我已经在FragmentStatePagerAdapter中的每个片段中注册了一个广播接收器。 现在这一切都很好,除了一件事: 当我们滚动到位置2处的片段(位置1和