91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么使用CountDownTimer實現倒計時

發布時間:2021-06-11 15:27:12 來源:億速云 閱讀:239 作者:Leah 欄目:移動開發

本篇文章為大家展示了Android中怎么使用CountDownTimer實現倒計時,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

啥是CountDownTimer?

CountDownTimer是Andorid.os包下一個谷歌為我們封裝好的一個倒計時工具。我們嗎、平時開發過程中像一些驗證碼、倒計時的功能,如果自己封裝一個倒計時工具就會稍顯麻煩。而谷歌這個工具使用起來非常方便。

源碼

package android.os;

public abstract class CountDownTimer {
 public CountDownTimer(long millisInFuture, long countDownInterval) {
 throw new RuntimeException("Stub!");
 }

 public final synchronized void cancel() {
 throw new RuntimeException("Stub!");
 }

 public final synchronized CountDownTimer start() {
 throw new RuntimeException("Stub!");
 }

 public abstract void onTick(long var1);

 public abstract void onFinish();
}

構造函數:

兩個參數,第一個是總的倒計時時間,第二個是倒計時間隔。比如1秒跳一次該參數就為1000,兩個參數的單位都為毫秒。

start():

調用該方法以啟動計時器。

cancel():

調用該方法以釋放計時器。

重要!一定要在onDestory等回調中cancel()計時器,否則會因為頁面被回收計時器還在運作而出現空指針錯誤!

回調方法:

onTick():

每個時間間隔會回調一次,比如設置了1000ms的間隔,就會每1000ms回調一次這個方法。

onFinish():

在整個計時器結束之后回調。

使用中的一些坑

計時不準的問題

雖然這個工具有針對延遲做了處理,但是因為一些其他原因,導致CountDownTimer開始計時的時候極有可能不從你設定的總時長開始計時。比如你設定的millsInFuture是30000(30s),CountDownTimer其實是從29xxx開始計時的,這樣會導致一些Text的UI顯示快一秒。解決辦法就是在構造的時候就傳入一個比30000大一些的數,比如30300.

內存泄漏/空指針問題

CDT內部其實是對Handler有做一個封裝,所以一定一定要在回收的時候調用Timer的cnacel()方法,否則容易出現空指針錯誤。

上述內容就是Android中怎么使用CountDownTimer實現倒計時,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

观塘区| 昭觉县| 商洛市| 绥芬河市| 湘潭县| 安宁市| 沙坪坝区| 象州县| 汝南县| 赤壁市| 沭阳县| 永济市| 筠连县| 仙游县| 长子县| 临澧县| 杭锦后旗| 宾阳县| 沛县| 永定县| 惠东县| 文化| 调兵山市| 钟山县| 永昌县| 文安县| 连城县| 商城县| 普定县| 剑阁县| 商丘市| 盐源县| 鹤壁市| 澄江县| 南阳市| 张家港市| 固阳县| 靖远县| 简阳市| 岳西县| 山西省|