2012-06-12 26 views
1

我正在尝试为Android设备创建音乐音序器应用程序,并希望了解如何实现坚如磐石的计时功能。Android中稳定,准确的时间安排

如果我将Runnable传递给Handler.postDelayed并指定延迟时间为x毫秒,那么该Runnable保证在x毫秒的时间内执行吗?

如果我无法通过Handler获得稳定和准确的时间,还有哪些其他选项对我开放?

预先感谢您

回答

1

经过一番google搜索我设法在这里找到答案:

http://masterex.github.com/archive/2012/05/28/android-audio-synthesis.html

处理程序,Thread.sleep()方法和计时器不走它看起来是那样的。

谢谢DrA为您解答,非常感谢 - 抱歉没有早日承认,我已经离开了一段时间。

+0

如果处理程序,Thread.sleep()和计时器不是要走的路......那么还有什么呢?我已经看到了链接,但它是TLDR。 –

1

我不认为“硬实时”编程是可能的。选项似乎是寻找事件发生时发出信号的事件。这可以通过创建自己的标志并轮询其他线程中该标志的值来完成。

您可以使用CountDownTimer指定必须以毫秒为单位传递的特定时间长度。

您可以使用系统时钟并通过轮询已经过多少时间来制作自己的计时器。

还有一个名为FileObserver的有用类,允许您观看特定文件,并听到“打开”和“关闭”等事件。使用这些信号,您可以知道是时候转移到下一个操作。

最糟糕的错误是在特定的硬件上发生时间问题,但大多数情况下不会发生。如果我不拥有所有这些问题,并且发现时机问题非常困难,那么这个问题就很难解决。我希望其他人会有更好的或更多的答案来解决这个问题。