【问题标题】:Relationship between android:noHistory and android:finishOnTaskLaunchandroid:noHistory 和 android:finishOnTaskLaunch 的关系
【发布时间】:2014-03-10 19:48:39
【问题描述】:

这两个属性如何关联?如果我有android:noHistory="true",那么有android:finishOnTaskLaunch="true" 有什么意义/意义吗?

【问题讨论】:

    标签: android android-activity android-manifest


    【解决方案1】:

    假设您的应用中有三个 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" 是否有任何意义/意义?感觉前者已经“覆盖”了后者提供的东西(以及你在第二种情况中解释的一些其他副作用)
    • @kolistivra 添加它并没有什么坏处,但也许你是对的;我想不出它可以有任何“意义/意义”的任何场景。
    • 嗨@RacilHilan。我不确定我是否正确,但我认为 android:finishOnTaskLaunch 会在用户按下返回或主页按钮时导致活动被破坏。因此,当用户重新启动应用程序时,它不会被破坏,而是当用户从前台删除它时。 (我想在内部 onPause() 直接调用 onDestroy())
    【解决方案2】:

    finishOnTaskLaunch 会在你转移到另一个任务时杀死Activity。但是,如果您在同一任务中移动到另一个活动,noHistory 会杀死 Activity

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 2015-12-28
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      相关资源
      最近更新 更多