【问题标题】:Android Activity life cycle - onPause() and onResume()Android Activity 生命周期 - onPause() 和 onResume()
【发布时间】:2015-05-13 15:10:40
【问题描述】:

Android developer diagram 中,我看到onResume() 总是在onPause() 之前调用。假设用户开始一个新的Activity,为什么onPause()前面要加上onResume()

我的意思是:

OnResume 可以在 2 种情况下调用:

1) 当用户开始新的活动时(在 OnPause 之前)

2) 当活动在后台并且用户将活动带回 前景

我希望在任何情况下都应该做其他事情。

【问题讨论】:

    标签: android activity-lifecycle


    【解决方案1】:

    你弄错了。无论何时创建一个活动,onResume 都会在 onStart 之后被调用。每当您的活动返回堆栈时,就会调用 onPause。如果您的活动再次回到前台,则调用 onResume。所以,它不像 onResumeonPause 之前被调用。每当活动从 onPause 状态返回时,就会调用 onResume 而不是 onStartonCreate。发生这种情况是为了让 Android 不必一次又一次地创建 Activity 实例,尽管这些实例没有被正确销毁。这也非常节省内存。

    注意:如果您的应用正在运行并且用户按下 返回 按钮或 主页 按钮,那么 Activity 将通过 onPause ()onStop() 状态。在此之后,如果用户再次回到您的应用,则将依次调用 onRestart()onStart()onResume() .

    那么当 Activity 仅处于 onPause() 状态时?dialog 出现在您的 Activity 之上或您的 Activity 处于 在分屏中显示,但没有焦点(用户未与您的应用交互)。在这些情况下,活动仅进入 onPause() 状态。

    【讨论】:

      【解决方案2】:

      activity的生命周期如下

      1. 通过 onCreate()、onStart()、onResume ... 重新开始并通过 onPause()->onStop()->onDestroy() 关闭
      2. 黄色背景:活动进入背景,因此不再可见。用户返回活动。
        例如

        • Activity运行时关闭手机屏幕:onPause()->onStop()
        • 再次开启屏幕:onStart() -> onResume()
      3. 绿色背景:活动停留在可见屏幕区域但未激活 例如激活占据屏幕一部分的多个窗口(分屏)并提示您的应用以使其处于活动状态

        • 关于其他应用的提示:在您的应用中调用 onPause(),因为它进入暂停状态但仍然可见
        • 应用提示:onResume() 被调用

      下面是一个有两个应用的分屏示例:

      android documentation on activity life cycle for details

      【讨论】:

        【解决方案3】:

        onResume() 总是在 onPause() 之前调用

        这是正确的。 onResume 始终在第一次启动 Activity 时调用,在 onCreate 之前,以及当 Activity 恢复时(用户导航回您的 Activity)

        假设用户开始一个新的Activity,为什么onPause()应该是 前面是onResume()

        onPause 仅在 Activity 被置于后台时调用,或者在应用程序被销毁时在 onDestroy 之前调用。所以onPause总是调用onResume之后被调用。为什么?因为这就是 Android 框架定义的 Activity 的生命周期。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-21
          • 2013-10-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-06
          相关资源
          最近更新 更多