天天看點

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