【问题标题】:Why is secondary activity being destroyed when going back to main activity? [closed]回到主要活动时,为什么次要活动被破坏? [关闭]
【发布时间】:2013-07-12 21:21:22
【问题描述】:

当返回活动 A(主要活动)时,活动 B 被销毁。为什么会这样?

我想了解的示例程序在这里: http://developer.android.com/shareables/training/ActivityLifecycle.zip

【问题讨论】:

    标签: android android-activity activity-lifecycle adk


    【解决方案1】:

    这里展示了任务中的每个新活动如何将项目添加到后台堆栈。当用户按下 Back 按钮时,当前的 Activity 被销毁并恢复之前的 Activity。

    为什么要销毁?因为最新的活动位于堆栈顶部并且要进入下一个活动,所以您将最新的活动弹出 (LIFO)。更多信息here

    【讨论】:

    • 当我从 B 调用 Activity A (main) 时,使用 Intent intent = new Intent(ActivityB.this, ActivityA.class);开始活动(意图); B被破坏。为什么?
    • 是的,这是因为 ActivityA 具有在 AndroidManifest.xml 中定义的属性android:launchMode="singleTask"。当现有的singleTask Activity 启动时,堆栈中它上面的所有其他 Activity 都将被销毁。
    【解决方案2】:

    注意:这发生在 same 应用程序的活动中。简而言之,当您在应用程序中并使用“后退”或“向上”进入上一个活动时,您所在的活动将被销毁(系统会自动对其调用finish())。

    每个不同应用程序都有自己的后台堆栈,因此如果您在 Activity 1 中,请转到 Home,转到 Launcher,然后启动不同的应用程序,您已经启动了“Activity 2 "但真的不一样。这两个活动属于不同的任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2020-11-30
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      相关资源
      最近更新 更多