根据Understanding App Standby,如果一个应用看起来好像用户不经常使用它,那么它就可以进入待机状态。
我们有日历和联系人同步应用程序,这些应用程序设置一次并(理想情况下)在后台运行,此后无需与用户交互。这些应用程序同步到日历和联系人数据库,因此它们没有用户必须经常打开的 UI。他们只有一个您并不经常需要的帐户管理 UI。
因此,上述文章中提到的条件均不适用于我们的应用程序。尤其是:
- 用户不必为了“使用它”而打开它,所以他几乎没有启动它
- 该应用程序不运行前台服务
- 我们不显示任何通知(除非发生错误)
- 它肯定不是设备管理应用程序
所以我的问题是,这样的应用程序(仅在后台运行)避免被系统置于待机状态的预期方式是什么?
我们收到许多来自用户的报告,称该应用程序停止在最近的三星设备上同步,除非它每 3 天打开一次。将应用程序添加到不受监控的应用程序白名单似乎没有帮助。我们的日志显示,在 3 天未启动应用程序后,同步适配器不再启动,即使在触发“手动”同步时也是如此。只有当手动打开应用程序时,它才能继续同步。
我们真的必须显示通知才能保持“活着”吗?