我正在努力改进我的事件处理系统,使其更加强大,提高精度稳定性。
由于它是基于时间的事件处理/应答系统,因此第一个相关决定将是使用哪个时间参考。在阅读了我能找到的所有内容之后,我最终使用了SystemClock.elapsedRealtime()。 为什么不使用SystemClock.uptimeMillis()或System.nanoTime()?因为我的系统需要在睡眠/屏幕关闭时继续工作。
这里有更好的方法吗?
在那之后,最有问题的一步:如何处理定时事件并保证它们在所需时间发生,没有滞后/延迟/变化?
在尽可能多地阅读之后,我决定采用处理程序方法,为每个事件类都有一个(因此不同的类可以异步发生)。
不幸的是,这不符合预期: - 调整有时会完全同步,有时会出现很大的不断延迟。完全没有更改代码,只需几分钟后启动应用程序。线程之间的任何时钟同步问题(事件生成器和事件处理程序都在不同的线程中)? - 处理程序调整不是恒定/精确的,我可以轻松地注意到事件结果显示与变量滞后不同步。
有关如何在Android中以更精确的方式处理定时事件的任何提示吗?
谢谢, 加布里埃尔西蒙斯