2

我正在尝试为 Android 设备创建一个音乐音序器应用程序,并希望获得一些关于如何实现坚如磐石的计时功能的建议。

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

如果我无法使用 Handler 实现稳定准确的计时,我还有哪些其他选择?

先感谢您

4

2 回答 2

2

经过多次谷歌搜索,我设法在这里找到了答案:

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

处理程序, Thread.sleep() 和计时器似乎不是要走的路。

谢谢 DrA 的回答,非常感谢 - 很抱歉没有早点承认,我已经离开一段时间了。

于 2012-06-24T13:44:41.550 回答
1

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

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

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

还有一个名为 FileObserver 的有用类,它允许您查看特定文件,并听到诸如打开和关闭之类的事件。使用这些信号,您可以知道是时候进行下一个操作了。

最坏的可能错误是在特定硬件上发生时间问题,但在大多数情况下不会发生。如果我不拥有所有这些,那么问题是很难找到时间问题。我希望其他人对此问题会有更好或更多的答案。

于 2012-06-15T13:05:02.940 回答