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

时间:2018-09-25 18:26:55

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

我使用Android的Navigation Component,由一个Activity托管了3个片段。启动片段是启动画面片段(A),如果用户未登录,则启动登录片段(B),如果用户登录,则启动列表片段(C)。

所以发射路线是A-> B-> C或A-> C。

当您降落在B或C上时,按向后可杀死该应用。但是NavigationNavigator却备份到A(我认为,肯定会调用A的onActivityCreated崩溃,这可能与它无关)。

A-> B的图形编辑器中的弹出行为似乎允许我弹出不同的片段,但是似乎没有选择杀死应用程序。

我真的需要为此行为改写onBackPressed并杀死活动吗?因为没有NavigationController会更容易,所以通常我会在开始新活动时完成一项活动。

1 个答案:

答案 0 :(得分:3)

在“图形编辑器”中打开文本选项卡以查看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>