在我们的Android应用程序中,我们需要准确的计时器。
在4.x一切都好。但是在6.0甚至5.x(至少在三星上),任何计时器都无法正常工作
我们请求的时间没有差别。例如,我需要600毫秒(偶尔),30秒和5分钟重复计时器。当设备处于空闲模式(6.0,打盹)时,任何这些都可能会在意外时间内延迟,甚至可能延迟几个小时(!!!)。
Thread.sleep(),计时器类, pthread_cond_timedwait()(在C中), AlarmManager.set() - 不能保证确切的超时。
AlarmManager.setExact()效果更好,但并非总是如此。在空闲(打盹)模式下可能根本不起作用。即使应用已列入白名单
AlarmManager.setExactAndAllowWhileIdle()与setExact()看起来相同。它在空闲模式下工作的唯一区别,但只有超过15分钟的超时。
将我们的应用程序添加到电源白名单并没有帮助
那么,是否存在提供精确(至少近似)重复超时的方法?