我使用Android的Navigation Component
,由一个Activity托管了3个片段。启动片段是启动画面片段(A),如果用户未登录,则启动登录片段(B),如果用户登录,则启动列表片段(C)。
所以发射路线是A-> B-> C或A-> C。
当您降落在B或C上时,按向后可杀死该应用。但是NavigationNavigator却备份到A(我认为,肯定会调用A的onActivityCreated
崩溃,这可能与它无关)。
A-> B的图形编辑器中的弹出行为似乎允许我弹出不同的片段,但是似乎没有选择杀死应用程序。
我真的需要为此行为改写onBackPressed
并杀死活动吗?因为没有NavigationController会更容易,所以通常我会在开始新活动时完成一项活动。
答案 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>