0

我正在尝试改进我的事件处理系统,使其更加健壮,提高精度稳定性。

由于它是基于时间的事件处理/应答系统,第一个相关决定将是使用哪个时间参考。在阅读了我能找到的所有内容后,我最终使用了 SystemClock.elapsedRealtime()。为什么不使用 SystemClock.uptimeMillis() 或 System.nanoTime()?因为我的系统需要在睡眠/屏幕关​​闭时继续工作。

这里有更好的方法吗?

在那之后,最有问题的一步:如何处理定时事件并保证它们在期望的时间发生,没有滞后/延迟/变化?

在阅读了尽可能多的内容后,我决定采用处理程序方法,为每个事件类设置一个(因此不同的类可以异步发生)。

不幸的是,这并没有按预期工作: - 时间有时会完全同步,有时会出现非常大的持续延迟。根本不更改代码,只需几分钟后启动应用程序。线程之间的任何时钟同步问题(事件生成器和事件处理程序在不同的线程中)?- 处理程序计时不是恒定/精确的,我可以很容易地注意到显示的事件结果与可变滞后不同步。

有关如何在 Android 中以更精确的方式处理定时事件的任何提示?

谢谢,加布里埃尔西蒙斯

4

0 回答 0