我有一个需要向服务器发送周期性心跳的应用程序,但是当手机进入待机模式时,后台心跳线程就会死亡。无论如何,是否可以将手机从待机状态唤醒,发送心跳,然后以编程方式返回 sleep 状态?如果可能,我想避免使用 PARTIAL_WAKE_LOCK。
谢谢
最佳答案
将 AlarmManager
与 _WAKEUP
风格的警报一起使用。这里是 a sample project 说明了它的用法(以及你想要的 WakefulIntentService
,以确保设备在你的网络 I/O 期间不会重新进入休眠状态)。
您不能在没有 WakeLock
的情况下进行网络 I/O,因为设备会在 I/O 期间重新进入休眠状态。使用 AlarmManager
,您可以安排在实际心跳工作期间仅保留 WakeLock
,而不是 100% 的时间。
关于Android - 定期从待机模式唤醒?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3579027/