问题描述
这两个属性如何关联?
如果我有android:noHistory="true"
,那么拥有android:finishOnTaskLaunch="true"
有什么意义/意义吗?
1楼
假设您的应用程序中有三个活动:A,B和C。启动应用程序,然后看到A,单击一个按钮,然后看到B,单击一个按钮,然后看到C。
第一种情况
现在,如果按手机上的“后退”按钮,您将看到B。
第二种情况
假设B具有android:noHistory="true"
。
现在,如果您按下手机上的“后退”按钮,您将看到android:noHistory="true"
属性从历史记录(即活动堆栈)中删除了B,因此当您按下“后退”按钮时您将看不到它。
第三种情况
假设C具有android:finishOnTaskLaunch="true"
。
现在,如果您按下手机上的“主页”按钮,然后再次启动该应用程序,您将看到B。当您再次启动该应用程序时,Android终止于C,因为它具有android:finishOnTaskLaunch="true"
属性。
2楼
当您移至另一个任务时, finishOnTaskLaunch
会杀死Activity
。
但是,如果您在同一任务中转到另一个活动,则noHistory
会杀死该Activity
。