【问题标题】:Is onPause() called when user closes the app from recents当用户从最近关闭应用程序时调用 onPause()
【发布时间】:2015-06-18 13:03:54
【问题描述】:

我阅读了很多关于活动生命周期的信息,但找不到简单的答案。假设有人按下切换应用硬件按钮。当应用程序切换到不同的应用程序时,onPause() 保证会被调用。同时按下 Back(关闭应用程序)或 Home 将调用onPause()。

但是问题来了。当我打开可以在应用程序之间切换的应用程序列表时,只需单击按钮即可调用onPause()?我的意思是只是单击切换应用程序会调用onPause()?

我不清楚,文档也没有描述这种情况。

编辑: 我说onPause() 仅在单击按钮后不被调用是错误的。对不起。

【问题讨论】:

  • @downvoter 关心评论我的回答有什么问题?您在我发布后的几毫秒内立即投了反对票。
  • @Sharpedge 告诉我。 -_-
  • “onPause() 将不会被调用,直到有人从列表中选择了不同的应用程序”这是错误的,至少在我的设备上按下按钮以显示应用程序列表时会调用 onPause。

标签: android onpause activity-lifecycle


【解决方案1】:

基于Activity page,将调用onPause()。任何处于前台的应用都会在用户拉起应用列表开始滑动应用的那一刻调用onPause()。

【讨论】:

    【解决方案2】:

    假设有人正在按下切换应用程序硬件按钮。 onPause() 不会被调用,直到有人从列表中选择了不同的应用程序。

    您确定当您按下让您选择其他应用程序的按钮时不会调用onPause(),直到您选择一个应用程序?我对此表示怀疑。

    【讨论】:

    • 它会在显示应用列表之前调用 onPause。
    • 是的,我知道......这就是我所说的,OP 说 onPause() 在选择一个应用程序后被调用......
    【解决方案3】:

    应用程序最初会在应用程序列表出现之前调用 onPause 方法,但不会在它被滑开时(或者甚至在选择另一个应用程序时)

    【讨论】:

      【解决方案4】:

      活动生命周期总是按照文档中给出的顺序调用。含义onCreate > onStart > onResume > onPause > onStop > onDestroy。可能会有一些重复的调用,例如在活动进入前台并移动到后台时,在onResume 和onPause 之间来回切换,但它们始终按此顺序进行。这意味着,如果您确定 onDestroy 被调用,那么您可以确定 onPause 和 onStop 已被调用。

      【讨论】:

        【解决方案5】:

        是的 onPause() 总是在 onDestroy() 之前调用。它是这样的: onPaused() --> onStop() --> onDestroy()

        始终遵循箭头的方向。无论如何,这些方法都是连续进行的。无论哪种情况,像 onStop() 这样的方法总是在 onPause() 之后和 onDestroy() 之前执行。

        【讨论】:

        • onPause() 是您唯一可以保证会被调用的人。 onStop() 和 onDestroy() 可能不是。
        • 我以为他的意思是他刷掉了应用程序本身……而不是其他应用程序
        • "但是问题来了。当我打开可以在应用程序之间切换的应用程序列表并滑动应用程序以关闭它时,会调用 onPause() 吗?我知道 onDestroy()在那种情况下总是被调用,但在这种情况下总是在 onDestroy() 之前调用 onPause()?” - 他在这里的意思是我完全正确。他的意思是他把应用程序本身刷掉了。
        • onPause() 将被调用。如果你刷掉应用程序,onStop() 和onDestroy() 实际上可能不会被调用。请注意从onPause() 向左走的截止线。
        • developer.android.com/images/training/basics/…。看看这个另一个。截止线不存在。在我的所有经验中,我从来没有让应用程序不通过 onStop() 和 onDestroy()。如果你能让我知道发生这种情况的情况,那就太好了
        【解决方案6】:

        其实 OP 是正确的。我也很震惊。 永远,显示最近的应用程序会触发暂停。 在选择其他应用之前,Android 11 的最新更改不会暂停。 这意味着在 Android 11 上,最近应用中可见的应用是实时的,而不是缩略图。

        如果您要在暂停时显示隐私屏幕,并在恢复时关闭,您会在旧操作系统的缩略图上看到隐私,但 11 您会看到隐私闪烁到拇指上,因为它会在其他应用程序运行时动画消失已选中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-13
          • 2019-12-05
          • 2014-12-22
          • 2014-04-05
          • 1970-01-01
          相关资源
          最近更新 更多