我正在编写一个每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/

10-11 07:19