android - 导航组件无法弹出以退出应用程序

标签 android android-fragments android-jetpack android-architecture-navigation

使用 Android 的 Navigation Component,我有 3 个由单个 Activity 托管的 fragment 。启动 fragment 是启动画面 fragment (A),如果用户未登录,我启动登录 fragment (B),如果他们已登录,我启动列表 fragment (C)。

所以发射路线要么是A->B->C,要么是A->C。

当您降落在 B 或 C 上时,按下后退键会终止该应用程序。 NavigationController 虽然是备份到 A(我认为,A 的 onActivityCreated 肯定会在此时调用它崩溃,这可能是不相关的)。

A -> B 的图形编辑器中的弹出行为似乎允许我弹出到不同的 fragment ,但似乎没有一个选项可以直接终止应用程序。

我真的需要为此行为覆盖 onBackPressed 并终止 Activity 吗?因为没有 NavigationController 这会更容易,所以通常我会在开始一个新 Activity 时完成一个 Activity 。

最佳答案

在图形编辑器中打开文本选项卡以查看 xml 代码,找到你的两个操作 A -> B 和 A -> C 并放置标签:app:clearTask="true",它应该杀了你用户按下后退按钮时的应用程序。

例子:

 <fragment
        android:id="@+id/launcher_fragment"
        android:name="com.example.LauncherFragment"
        android:label="launcher_fragment">
        <action
            android:id="@+id/action_launcher_to_login"
            app:destination="@id/login_fragment"
            app:clearTask="true"/>
        <action
            android:id="@+id/action_launcher_to_list"
            app:destination="@id/list_fragment"
            app:clearTask="true" />
    </fragment>

关于android - 导航组件无法弹出以退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52504615/

相关文章:

android - 在 fragment 中使用FragmentManager?

android - jetpack compose 中文本颜色的奇怪行为

android - Google Cloud Messaging 是否会向处于待机模式的设备发送消息?

android - 在不使用线程的情况下延迟几秒钟

安卓 : How to parse a string with a multicharacter delimitation

android - 如何设置 onClick 来关闭 ImageView 中的 fragment ?

Android 删除应用程序图标操作栏

android - android studio 中的 Activity 和 fragment 布局

android - 如何显示具体的商品数量?

android - viewmodel 在屏幕方向更改 android 上进行网络调用