HarmonyOS setInterval倒计时,倒计时时间不准确?

app中,获取验证码按钮的倒计时使用了setInterval,在倒计时时收起APP到桌面,1分钟之后打开app,倒计时只走了10秒左右。

当前使用方式:setInterval,1分种后clearInterval。

看了文档的短时任务,24小时配额默认为10分钟,配额消耗完后不允许再申请短时任务,如果多次获取验证码导致配额消耗完,后续又会出现上述问题。又不太像是需要长时任务app。

需求:倒计时在后台运行时计时准确。

阅读 525
1 个回答

TextTimer组件提供了通过文本显示计时信息并控制其计时器状态的功能。

具体连接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-texttimer-V5

可参考下面demo

@Entry
@Component
struct TextTimerExample {
  textTimerController: TextTimerController = new TextTimerController()
  @State format: string = 'ss'

  build() {
    Column() {
      Row(){
        TextTimer({ isCountDown: true, count: 59000, controller: this.textTimerController })
          .format(this.format)
          .fontColor(Color.Black)
          .fontSize(50)
          .onTimer((utc: number, elapsedTime: number) => {
            console.info('textTimer notCountDown utc is:' + utc + ', elapsedTime: ' + elapsedTime)
          })
        Text("秒")
      }
      Row() {
        Button("start").onClick(() => {
          this.textTimerController.start()
        })
        Button("pause").onClick(() => {
          this.textTimerController.pause()
        })
        Button("reset").onClick(() => {
          this.textTimerController.reset()
        })
      }
    }
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进