与服务器通信 - Android应用程序

时间:2017-08-09 06:39:31

标签: java android client-server communication android-doze-and-standby

我有一个Android应用程序正在上传和下载文件 每15分钟一次。我正在使用 AlarmManager setRepeating()来执行此操作,但它耗费了大量电池和低效率。但我想重组这个应用程序,以便它可以在Marshmallow及以上设备上运行。 我读到了 JobScheduler 同步适配器,但挑战是打盹模式。根据官方文档

https://developer.android.com/training/monitoring-device-state/doze-standby.html#understand_app_standby

JobScheduler和Sync Adapter无法在Doze模式下工作。

那么,即使在打盹模式下,如何每15分钟进行一次Android应用和服务器通信。

感谢。

2 个答案:

答案 0 :(得分:0)

根据Android developer documents,AlarmManager将继续使用marshmallow及以上

标准AlarmManager警报(包括setExact()和setWindow())被推迟到下一个维护窗口。

  1. 如果您需要设置在Doze中触发的闹钟,请使用 setAndAllowWhileIdle() setExactAndAllowWhileIdle()
  2. 使用 setAlarmClock()的警报设置继续正常启动 - 系统会在警报触发前不久退出Doze。

答案 1 :(得分:0)

使用Alarmmanager让您的用户停用您应用的打盹模式(白名单)。

Alarmmanager不消耗大量电池。报警事件来自操作系统。