天天看点

HarmonyOS实战——TickTimer定时器组件基本使用

HarmonyOS实战——TickTimer定时器组件基本使用

【鸿蒙专栏,从入门到实战系列】:

https://blog.csdn.net/qq_41684621/category_10128500.html

目录

1. TickTimer定时器组件说明:

2. 实现案例——计时器

3. TickTimer组件——bug汇总:

4. TickTimer定时器案例——统计10秒内按钮点击的次数

是Text的子类,所以可以使用Text的一些属性

该组件目前有一些bug,后续版本中会修复这些bug的

常见属性:

属性名

功能说明

format

设置显示的格式

count_down

true倒着计时,false正着计时

常见方法:

HarmonyOS实战——TickTimer定时器组件基本使用

基本用法:

xml文件:

<code>mm:ss</code> 分别表示分钟和秒钟

HarmonyOS实战——TickTimer定时器组件基本使用

统计一段时间之类做了多少事情,这个时候就需要计时器了

在定时器下面分别添加开始和结束计时的两个按钮

HarmonyOS实战——TickTimer定时器组件基本使用

新建项目:<code>TickTimerApplication</code>

ability_main

<code>ohos:text_alignment="center"</code>:表示的是文本相对于组件是居中的

<code>ohos:layout_alignment="center"</code>:表示的是<code>TickTimer</code>组件在布局里面是居中的

MainAbilitySlice

运行:

HarmonyOS实战——TickTimer定时器组件基本使用

点击“开始”按钮

HarmonyOS实战——TickTimer定时器组件基本使用

点击“结束”按钮后就停止计时了

不要用 <code>setBaseTimer</code> 去设置基准时间

停止之后不用重新开始

如果没有设置基准时间,把时间格式设置如下,就会看到是从什么时候开始计时的了

HarmonyOS实战——TickTimer定时器组件基本使用

运行,发现是从时间原点开始

HarmonyOS实战——TickTimer定时器组件基本使用

所以,如果没有设置基准时间,默认是从时间原点开始计时的

如果设置了基准时间,参数为 0

HarmonyOS实战——TickTimer定时器组件基本使用
HarmonyOS实战——TickTimer定时器组件基本使用

点击“开始”按钮后,瞬间变成了当前的时间开始计时

HarmonyOS实战——TickTimer定时器组件基本使用

所以,如果设置了基准时间,参数为 0,是从当前时间开始计时的

如果设置了基准时间,参数为非 0 ,具体数值:<code>3600*1000</code>(表示一小时的毫秒值)

HarmonyOS实战——TickTimer定时器组件基本使用

运行,点击“开始”按钮后,并没有对当前时间做一个增加,反而对当前时间做一个减少

HarmonyOS实战——TickTimer定时器组件基本使用
HarmonyOS实战——TickTimer定时器组件基本使用

所以,如果设置了基准时间,参数为非 0,也是从当前时间开始计时的,并且还会减少对应增加的时间,说明有 bug

总结:

如果没有设置基准时间,默认是从时间原点开始计时的

如果设置基准时间,参数为0,是从当前时间开始计时的

如果设置基准时间,参数为非0,也是从当前时间开始计时的

所以,<code>tickTimer.setBaseTime();</code> 这个方法是有 <code>bug</code> 的,暂时不要用这个方法,相信以后HarmonyOS在更新的时候会修复这个 bug

还有一个 bug,把时间格式设置为分秒计时

HarmonyOS实战——TickTimer定时器组件基本使用

运行后,它不是从 <code>0</code> 秒开始计时的,而是从运行开始项目后就开始了,当你点击“开始”按钮后,就会发现已经开始计时了,按下结束再开始,也不是从刚刚暂停的时间再开始计时的,而是一直往后面计时

HarmonyOS实战——TickTimer定时器组件基本使用

虽然点击了结束,在这个APP界面当中时间不再跳动,但是在系统的底层,时间并没有停止

建议:

该组件目前还是有 bug 的

计时器一旦点击结束之后,就不要重新开始再计时了,也就是说每个计时器只用一次就行了

使用定时器统计10秒之内按了多少次?

需求:

最上面是<code>TickTimer</code>定时器,中间的是文本显示次数,下面是“开始计时”按钮,当点击了这个按钮之后,按钮上面的文字就会变成“请疯狂点我”,然后就不断的点击这个按钮,点击一次,上面显示的文本就会增加一次计数,此时,定时器也会不断走动的状态,当到达<code>10</code>秒钟之后,“请疯狂点我”按钮里面的文字就会显示“游戏结束了”,中间的按钮就会展示我在 <code>10</code>秒之内一共点击了多少按钮次数

HarmonyOS实战——TickTimer定时器组件基本使用

新建项目:<code>TickTimerPracticeApplication</code>

定时器的格式:<code>00:01</code> ,可以用 <code>ticktimer.setText();</code> 获取到定时器现在的时间,不过现在是字符串的表示,如:“<code>00:01</code>”,所以还需要把它变为毫秒值

添加一个方法进行转换

HarmonyOS实战——TickTimer定时器组件基本使用
HarmonyOS实战——TickTimer定时器组件基本使用
HarmonyOS实战——TickTimer定时器组件基本使用

本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15271906.html