【发布时间】:2014-03-10 19:48:39
【问题描述】:
这两个属性如何关联?如果我有android:noHistory="true",那么有android:finishOnTaskLaunch="true" 有什么意义/意义吗?
【问题讨论】:
标签: android android-activity android-manifest
这两个属性如何关联?如果我有android:noHistory="true",那么有android:finishOnTaskLaunch="true" 有什么意义/意义吗?
【问题讨论】:
标签: android android-activity android-manifest
假设您的应用中有三个 Activity:A、B 和 C。 您启动您的应用程序并看到 A,单击一个按钮并看到 B,单击一个按钮并看到 C。
第一个场景
现在,如果您按手机上的返回按钮,您将看到 B。
第二种情况
假设 B 有android:noHistory="true"。
现在,如果您按下手机上的后退按钮,您将看到 A。android:noHistory="true" 属性将 B 从历史记录(即活动堆栈)中删除,因此当您点击后退按钮时将看不到它。
第三种情况
假设 C 有android:finishOnTaskLaunch="true"。
现在,如果您按下手机上的 Home 按钮,然后再次启动应用程序,您将看到 B。当您再次启动应用程序时,Android 结束了 C,因为它具有 android:finishOnTaskLaunch="true" 属性。
【讨论】:
android:noHistory="true" 用于一项活动,那么拥有android:finishOnTaskLaunch="true" 是否有任何意义/意义?感觉前者已经“覆盖”了后者提供的东西(以及你在第二种情况中解释的一些其他副作用)
finishOnTaskLaunch 会在你转移到另一个任务时杀死Activity。但是,如果您在同一任务中移动到另一个活动,noHistory 会杀死 Activity。
【讨论】: