0

我有一个前台服务,它定期使用ScheduleTaskExecutor. 间隔为 15 秒,不能再长。

我想我已经阅读了关于 SO 上类似要求的几乎所有内容,但是,在 Android 2.3.x 的设备上,执行程序在设备进入睡眠模式后停止执行 - 即按下电源按钮后。

我也尝试使用 AlarmManager: cwac-wakeful但结果完全相同。

还有什么我可以尝试的吗?我怀疑这是操作系统中的错误。

4

1 回答 1

0

我有一个前台服务,它使用 ScheduleTaskExecutor 定期向服务器发送一条消息。间隔为 15 秒,不能再长。

如果这是针对消费类设备的,那么这是您的应用程序的可怕行为。您最终可能会在 Play 商店中获得负面的星级评分。

我想我已经阅读了关于 SO 上类似要求的几乎所有内容,但是,在 Android 2.3.x 的设备上,执行程序在设备进入睡眠模式后停止执行 - 即按下电源按钮后。

也许您没有获得WakeLock. 而且,根据相关设备上的连接选项,您可能还需要一个WifiLock可靠的结果。

我也尝试使用 AlarmManager: cwac-wakeful 但结果完全相同。

WakefulIntentService不是为经常运行的东西而设计的。您也可以抓住自己的WakeLock永远持有,或者直到电池耗尽,或者直到设备的用户向您开枪。

还有什么我可以尝试的吗?

使用日志记录(您的和系统的)来准确确定发生了什么和没有发生什么。用于adb shell dumpsys power确认您的WakeLock.

于 2013-07-31T11:14:29.070 回答