当前位置: 首页 > 面试题库 >

Android Timer时间表与scheduleAtFixedRate

曹育
2023-03-14
问题内容

我正在编写一个每10分钟记录一次音频的Android应用程序。我正在使用计时器来做到这一点。但是schedule和scheduleAtFixedRate之间有什么区别?相比于另一种使用,对性能有好处吗?


问题答案:

最好通过以下非Android文档来解释差异:

固定速率计时器(scheduleAtFixedRate())基于开始时间(因此,每次迭代都将在处执行startTime + iterationNumber * delayTime)。

在固定速率执行中,相对于初始执行的计划执行时间来计划每个执行。如果执行由于某种原因(例如垃圾回收或其他后台活动)而延迟,则将快速连续发生两个或更多个执行以“追赶”。

固定延迟计时器(schedule())基于之前的执行(因此,每个迭代将在处执行lastExecutionTime + delayTime)。

在固定延迟执行中,相对于上一次执行的实际执行时间安排每次执行。如果执行由于任何原因(例如垃圾回收或其他后台活动)而延迟,则后续执行也将延迟。

除此之外,没有任何区别。您也不会发现显着的性能差异。

如果要在与其他对象保持同步的情况下使用此功能,请使用scheduleAtFixedRate()。延迟schedule()会漂移并引入误差。



 类似资料:
  • 问题内容: 通常,一些答案提到给定的解决方案是 线性的 ,或者另一个是 二次的 。 如何发挥作用/识别什么? 有人能为像我这样仍然不认识的人解释这种最简单的方法吗? 问题答案: 当所需时间随所涉及元素的数量线性增加时,该方法是线性的。例如,用于打印数组元素的for循环大致是线性的: 因为如果我们打印range(100)而不是range(10),则运行它所需的时间要长10倍。您会经常看到写为O(N)

  • 日期与时间 避免使用 DateTime,除非你确实需要处理历法改革(儒略/格里历的改革),此时通过设置 start 参数来明确你的意图。 # 差 - 使用 DateTime 表示当前时间 DateTime.now # 好 - 使用 Time 表示当前时间 Time.now # 差 - 使用 DateTime 表示近现代日期 DateTime.iso8601('2016-06-29') # 好 -

  • 日期与时间 手动设定 可手动设定年/月/日/时/分/秒(12小时制的AM / PM)。 透过因特网设定 经由因特网自动取得日期、时间。 网络联机的详细说明,请参阅(网络设定) > [Infrastructure模式]。 提示 将(设定)>(主题设定) > [颜色]设定为[每月]时,将会于变更[日期与时间]的月份后,自动改变背景颜色。

  • 问题内容: 是否可以使用NOW()将默认时间添加为10分钟? 我已经尝试过类似的方法: 但是,它不起作用。 问题答案: 我不认为你可以做到这一点。 在MySQL的文件指出: 数据类型规范中的DEFAULT value子句指示列的默认值。除一个例外,默认值必须为常数;否则为0。它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为诸如NOW()或CURRENT_DATE之类的函数的值。唯一

  • Highcharts 曲线图 以下实例演示了时间间隔图表。 我们在前面的章节已经了解了 Highcharts 配置语法。接下来让我们来看下如何配置。 实例 文件名:highcharts_spline_time.htm <html> <head> <meta charset="UTF-8" /> <title>Highcharts 教程</title> <script src="http://ap

  • 给定一个单链表,其中包含一个指向头部的指针,一个指向尾部的指针。哪一个最费时? > 在开头插入节点