我正在开发一个应用程序,每20分钟向服务器发送一次数据。在这里,我发现了android idle mode
的一个难点。在idle mode
时间内,已对应用程序here禁用了网络访问权限。所以在这个时候我无法与服务器通信。所以要克服我找到的FULL_WAKE_LOCK,这将从空闲模式释放设备。但实际上,只要我们尝试发送数据,它就会唤醒屏幕。所以我们不需要那样做。所以我尝试了PARTIAL_WAKE_LOCK,它将关闭屏幕唤醒CPU。但在这个时候网络也被禁用了。所以我无法发送数据。
我搜索了很多。但我没有找到任何好文章。所以任何人都可以告诉我在没有唤醒屏幕的情况下退出空闲模式的程序化方法。
感谢。
答案 0 :(得分:1)
也许迟到了。
https://stackoverflow.com/users/3049065/mahendran-sakkarai,我有类似的情况,但对于跟踪系统。
过了一会儿我所有的服务都处于空闲模式。我尝试了WhiteList
,PartialWakeLock
,但没有工作。
ActivityRecognition
和LocationServices
已经停止了一段时间。
该解决方案通过注册一个带有PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED
的意图过滤器的broadcastReceiver
然后调用if(isDeviceIdleMode())
然后restart LocationUpdated
。此解决方法迫使设备退出空闲状态。