我目前正在开发一个Android应用程序,它以用户指定的间隔(5分钟,10分钟......)从Web服务器获取数据。我正在使用AlarmManager和WakeLock。警报每5-10分钟按预期发出一次。互联网连接似乎并没有在睡眠中起作用。大多数人建议我使用WifiLock。如果我错了,请纠正我,但是WifiLock仅用于保持WiFi活着吗? 3G-4G移动数据怎么样? WifiLock是否也保持这种联系还活着?
答案 0 :(得分:0)
从Android 6开始,由于新的打盹模式设备即使使用唤醒锁进入睡眠状态,也会被忽略。
避免设备进入睡眠状态的方法是使用不可忽略的通知启动前台服务。
答案 1 :(得分:0)
设备处于打盹模式时无法访问网络。如果您希望从Web服务接收通知或更新,请使用Firebase云消息传递,或者只是将网络呼叫推迟到下次唤醒时。您可以在此处查看有关Doze限制的更多信息:
https://developer.android.com/training/monitoring-device-state/doze-standby.html#restrictions
此外,如果您对如何检查手机是否处于打盹模式感到好奇:
https://developer.android.com/reference/android/os/PowerManager.html#isDeviceIdleMode()