1

根据Understanding App Standby,如果一个应用看起来好像用户不经常使用它,那么它就可以进入待机状态。

我们有日历和联系人同步应用程序,这些应用程序设置一次并(理想情况下)在后台运行,此后无需与用户交互。这些应用程序同步到日历和联系人数据库,因此它们没有用户必须经常打开的 UI。他们只有一个您并不经常需要的帐户管理 UI。

因此,上述文章中提到的条件均不适用于我们的应用程序。尤其是:

  • 用户不必为了“使用它”而打开它,所以他几乎没有启动它
  • 该应用程序不运行前台服务
  • 我们不显示任何通知(除非发生错误)
  • 它肯定不是设备管理应用程序

所以我的问题是,这样的应用程序(仅在后台运行)避免被系统置于待机状态的预期方式是什么?

我们收到许多来自用户的报告,称该应用程序停止在最近的三星设备上同步,除非它每 3 天打开一次。将应用程序添加到不受监控的应用程序白名单似乎没有帮助。我们的日志显示,在 3 天未启动应用程序后,同步适配器不再启动,即使在触发“手动”同步时也是如此。只有当手动打开应用程序时,它才能继续同步。

我们真的必须显示通知才能保持“活着”吗?

4

1 回答 1

0

据我所知,您只能通过使用服务来实现这一点:

https://developer.android.com/reference/android/app/Service.html

http://www.tutorialsface.com/2015/09/simple-android-foreground-service-example/

清单中还有一个“持久”标志,但我认为它不适用于从商店安装的应用程序。

android:persistent 应用程序是否应该一直运行——如果应该,则为“true”,否则为“false”。默认值为“假”。应用程序通常不应设置此标志;持久性模式仅适用于某些系统应用程序。

于 2017-11-23T10:05:16.967 回答