1

我正在开发一个应用程序,每 20 分钟向服务器发送一次数据。在这里我发现了一个困难,因为android idle mode。在idle mode网络访问被禁用时,这里提到的应用程序。所以在这个时候我无法与服务器通信。因此,为了克服这个问题,我找到了 FULL_WAKE_LOCK,它会将设备从空闲模式中释放出来。但实际上,每当我们尝试发送数据时,它都会唤醒屏幕。所以我们不需要那个。所以我尝试使用PARTIAL_WAKE_LOCK,它会在屏幕关闭的情况下唤醒 cpu。但是在这个时候网络也被禁用了。所以我无法发送数据。

我搜索了很多。但我还没有找到任何关于这方面的好文章。所以任何人都可以告诉我在不唤醒屏幕的情况下退出空闲模式的编程方式。

谢谢。

4

1 回答 1

2

也许来晚了。 https://stackoverflow.com/users/3049065/mahendran-sakkarai,我有类似的情况,但对于跟踪系统。过了一会儿,我的所有服务都处于空闲模式。我试过了WhiteListPartialWakeLock不工作。 ActivityRecognition并且LocationServices下降了很长一段时间。

该解决方案通过使用 Intent Filter 注册一个 broadcastReceiverPowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED 并调用if(isDeviceIdleMode())then restart LocationUpdated。此解决方法强制设备退出空闲状态。

于 2017-03-02T21:45:39.950 回答