导航组件无法弹出以退出应用程序
Navigation Component can't pop to exit app
使用 Android 的 Navigation Component
,我有 3 个片段由一个 Activity 托管。启动片段是启动画面片段 (A),如果用户未登录,我启动登录片段 (B),如果他们已登录,我启动列表片段 (C)。
所以发射路线要么是A->B->C,要么是A->C。
当您降落在 B 或 C 上时,按返回键应该会终止该应用程序。 NavigationController 虽然是备份到 A(我认为,A 的 onActivityCreated
肯定会在此时崩溃,这可能是不相关的)。
A -> B 的图形编辑器中的弹出行为似乎允许我弹出到不同的片段,但似乎没有一个选项可以直接终止应用程序。
我真的需要为这种行为覆盖 onBackPressed
并杀死 activity 吗?因为没有 NavigationController 这会更容易,所以通常我会在开始一个新的时完成一个 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 的 Navigation Component
,我有 3 个片段由一个 Activity 托管。启动片段是启动画面片段 (A),如果用户未登录,我启动登录片段 (B),如果他们已登录,我启动列表片段 (C)。
所以发射路线要么是A->B->C,要么是A->C。
当您降落在 B 或 C 上时,按返回键应该会终止该应用程序。 NavigationController 虽然是备份到 A(我认为,A 的 onActivityCreated
肯定会在此时崩溃,这可能是不相关的)。
A -> B 的图形编辑器中的弹出行为似乎允许我弹出到不同的片段,但似乎没有一个选项可以直接终止应用程序。
我真的需要为这种行为覆盖 onBackPressed
并杀死 activity 吗?因为没有 NavigationController 这会更容易,所以通常我会在开始一个新的时完成一个 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>