Android倒計時神器分析

本篇內(nèi)容介紹了“Android倒計時神器分析”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

在共青城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營銷,外貿(mào)營銷網(wǎng)站建設(shè),共青城網(wǎng)站建設(shè)費(fèi)用合理。

啥是CountDownTimer?

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

源碼

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();}

構(gòu)造函數(shù):

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

start():

調(diào)用該方法以啟動計時器。

cancel():

調(diào)用該方法以釋放計時器。

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

回調(diào)方法:

onTick():

每個時間間隔會回調(diào)一次,比如設(shè)置了1000ms的間隔,就會每1000ms回調(diào)一次這個方法。

onFinish():

在整個計時器結(jié)束之后回調(diào)。

使用中的一些坑

計時不準(zhǔn)的問題

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

內(nèi)存泄漏/空指針問題

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

“Android倒計時神器分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站欄目:Android倒計時神器分析
網(wǎng)頁URL:http://muchs.cn/article18/pphgdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、定制網(wǎng)站、用戶體驗、品牌網(wǎng)站建設(shè)小程序開發(fā)、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化