最好通过以下非Android文档来解释差异:
固定速率计时器(
scheduleAtFixedRate())基于开始时间(因此,每次迭代都将在处执行
startTime +iterationNumber * delayTime)。
在固定速率执行中,相对于初始执行的计划执行时间来计划每个执行。如果执行由于某种原因(例如垃圾回收或其他后台活动)而延迟,则将快速连续发生两个或更多个执行以“追赶”。
固定延迟计时器(
schedule())基于之前的执行(因此,每个迭代将在处执行
lastExecutionTime + delayTime)。
在固定延迟执行中,相对于上一次执行的实际执行时间安排每次执行。如果执行由于任何原因(例如垃圾回收或其他后台活动)而延迟,则后续执行也将延迟。
除此之外,没有任何区别。您也不会发现显着的性能差异。
如果要在与其他对象保持同步的情况下使用此功能,请使用
scheduleAtFixedRate()。延迟
schedule()会漂移并引入误差。



