gpt4 book ai didi

android - 如何使用navigateUp关闭应用

转载 作者:行者123 更新时间:2023-11-29 16:30:06 25 4
gpt4 key购买 nike

我正在使用 Android 导航组件。

在我的 HomeFragment 中,我添加了一个 OnBackPressedCallback

    OnBackPressedCallback callback = new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
doStuff();
Navigation.findNavController(view).navigateUp();
}
};

requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);

问题是 navigateUp 没有关闭应用程序。

我试图弹出堆栈但没有任何变化。

我该怎么办?

谢谢

最佳答案

根据 navigateUp() documentationpopBackStack() documentation , 都返回一个 boolean 值表示:

true if the stack was popped and the user has been navigated to another destination, false otherwise

NavController 仅控制其自己的返回堆栈(即,您放入返回堆栈的目的地),不包含或操作 Activity 返回堆栈。

如果您只想在按下后退按钮时始终完成 Activity ,直接调用 requireActivity().finish() 确实是正确的做法。

否则,只有当 popBackStack()/navigateUp() 返回 false 时,您才应该有条件地调用 requireActivity().finish() -这表明 NavController 返回堆栈上没有其他任何东西,您需要自己处理返回堆栈。

关于android - 如何使用navigateUp关闭应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56843184/

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