我有一个前台服务,它使用 ScheduleTaskExecutor
定期向服务器发送消息。间隔为 15 秒,不能更长。
我想我已经阅读了有关SO类似要求的几乎所有内容,但是在装有Android 2.3.x的设备上,执行器在设备进入睡眠模式后停止执行 - 即按下电源按钮后。
我也尝试使用AlarmManager:cwac-wakeful,但结果完全相同。
还有什么我可以尝试的吗?我怀疑这是操作系统中的一个错误。
我有一个前台服务,它使用 ScheduleTaskExecutor 定期向服务器发送消息。间隔为 15 秒,不能更长。
如果这是针对消费者设备,这是应用的可怕行为。您可能会在 Play 商店中获得负面星级评分。
我想我已经阅读了有关SO类似要求的几乎所有内容,但是在装有Android 2.3.x的设备上,执行器在设备进入睡眠模式后停止执行 - 即按下电源按钮后。
也许您没有获得WakeLock
.而且,根据相关设备上的连接选项,您可能还需要一个WifiLock
以获得可靠的结果。
我也尝试使用AlarmManager:cwac-wakeful,但结果完全相同。
WakefulIntentService
不是为频繁运行的东西而设计的。您不妨拿起自己的WakeLock
永远握住,或者直到电池耗尽,或者直到设备的用户向您开枪。
还有什么我可以尝试的吗?
使用日志记录(您的和系统的(来准确确定正在发生和未发生的情况。使用adb shell dumpsys power
确认WakeLock
的状态。