最近,我一直致力于在Android应用程序中安排后台线程中的重复任务。我从AlarmManager开始,但由于它在指定的时间间隔内触发不准确,我决定使用其他JAVA和Android API。
我从Timer开始,然后是ScheduledExecutorService,最后是ScheduledThreadPoolExecutor。
Timer的问题在于它并不总是以正确的间隔运行所有后台任务。我用它来运行3个后台重复任务,其中只有2个被触发。第三项任务是在几个小时后触发并赶上所有以前的失误,它在10ms内触发(虽然间隔时间为5分钟)
ScheduledThreadPoolExecutor在触发重复的后台任务时更准确。但问题是当设备处于睡眠模式(屏幕关闭)时它不会触发后台任务。 Handler.postDelayed()的行为也是如此,它在设备处于睡眠模式时暂停执行任务。
现在,我已经走到了尽头。我正在寻找一种解决方案,可以帮助我同时运行我的后台任务,并且不会因设备进入睡眠模式而中断。
请建议。