我正在编写一个每10分钟记录一次音频的Android应用程序。我正在使用计时器来做到这一点。但是schedule和scheduleAtFixedRate之间有什么区别?相比于另一种使用,对性能有好处吗?
最佳答案
差异最好用this non-Android documentation来解释:
固定速率计时器(scheduleAtFixedRate()
)基于开始时间(因此,每次迭代都将在startTime + iterationNumber * delayTime
处执行)。
固定延迟计时器(schedule()
)基于先前的执行(因此,每个迭代将在lastExecutionTime + delayTime
处执行)。
除此之外,没有任何区别。您也不会发现显着的性能差异。
如果要在与其他对象保持同步的情况下使用此功能,则需要使用scheduleAtFixedRate()
。 schedule()
的延迟可能会漂移并引入错误。
关于java - Android Timer时间表与scheduleAtFixedRate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12684604/