【问题标题】:How to know that app has been paused in Android Q?如何知道该应用已在 Android Q 中暂停?
【发布时间】:2019-12-09 23:34:49
【问题描述】:

在 Android Q 中是否有任何回调表明应用已暂停? 在这种情况下,我想对应用程序执行一些操作,但找不到任何描述。

“暂停应用”是Android Q的新功能: https://9to5google.com/2019/05/21/digital-wellbeing-pixel-launch-pause-app/

这不是 onPause() 生命周期方法。

【问题讨论】:

  • 你对暂停的定义是什么?
  • 当调用 onPause() 方法时,Activity 会暂停。你还需要什么?
  • 请仔细阅读问题@GiddyNaya

标签: android android-10.0


【解决方案1】:

对于其他不赞成他的问题的用户 - 这是关于已推送到 Pixel 手机的 Google Digital Wellbeing 程序中的一项功能 - 与活动生命周期无关

对于 OP - 我认为您还不会得到满意的答案。我查看了Android Q Beta documentation,他们没有提供任何具体内容的链接。但是对于未来的开发人员,我认为要搜索的术语是他们的文档中提到的“分心状态”:

按应用分心状态 - Android Q 现在可以选择性地将应用设置为“分心状态”,在这种状态下,它们的通知会被抑制,并且不会显示为建议的应用。

目前我唯一能建议的就是不要在 gradle 中定位 android Q。所以今天的正确答案是这个信息/api还没有公开

【讨论】:

    【解决方案2】:

    由于目前没有针对此问题的官方文档,因此我将其发布为答案,希望有官方解决方案。

    您可以使用意图过滤器 Intent.ACTION_PACKAGES_SUSPENDED 注册广播接收器。一旦您将应用程序置于此模式,它将被触发。

    但我不确定它不会有副作用或在所有设备上都能稳定运行。我在 Pixel 2 上试过。

    【讨论】:

      【解决方案3】:

      目前在这篇文章的时间。没有关于 Android Q Pause App featureAndroid Activity Lifecycle 相关的文档以及应用程序如何跟踪此操作。但是根据我对Pause App feature 的工作原理的理解,我在read here 的帖子中是这样的,来自应用程序的所有通知都被禁用,并且从启动器中选择应用程序也被禁用。

      使用 Pause App feature 暂停的应用仍然可以运行,但可以 既不会恢复/启动,也不会发送新通知。

      这是我对paused app 可以做的事情的看法,以验证它在针对 android Q 时是否已暂停。虽然效率不够。

      • 应用程序在启动期间使用startForeground 启动通知,因此它不会被用户关闭。显示类似 MyApp is running 的内容。
      • 应用程序使用正在运行的foreground service,它会定期检查通知every nth minutes 的状态。
      • 如果服务是still running and the foreground notification is closed or cannot be found,那么逻辑上我们可以说应用在paused state中。

      【讨论】:

        猜你喜欢
        • 2014-04-05
        • 2017-02-06
        • 2011-02-17
        • 1970-01-01
        • 2014-06-09
        • 2021-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多