關于Android CountDownTimer的使用及注意事項
Android CountDownTimer的使用
使用方式注意如下所示,有人喜歡用種方式使用倒計時,這樣的確是可以實現(xiàn)計時功能,但是,這樣會有個小問題,那就是如果有一個需求是要計時結束后跳轉到一個頁面A,并且點擊其他按鈕時也會跳轉到一個頁面B,如果計時器還在計時,就算你銷毀了當前頁面,當你跳轉到另一個頁面B,過一段時間你會發(fā)現(xiàn),突然跳到了A,為什么呢?
剛才不是已經銷毀了這個頁面了嗎?
其實是你跳轉到B頁面后,計時器還在計時,當計時結束后就會跳轉到你在計時器的回調函數(shù) onFinish() 中指定跳轉的頁面。
new CountDownTimer(10 * 1000 , 1000) {//加500毫秒是為了解決計時不精確的
@SuppressLint("SetTextI18n")
@Override
public void onTick(long millisUntilFinished) {
//倒計時的過程中回調該函數(shù)
back_home.setText((millisUntilFinished / 1000+1) + " ");
}
@Override
public void onFinish() {
//倒計時結束時回調該函數(shù)
finish();
}
}.start();
我建議的使用方式
如下所示:
CountDownTimer mCountDownTimer1;
mCountDownTimer1 = new CountDownTimer(10 * 1000 , 1000) {//加500毫秒是為了解決計時不精確的
@SuppressLint("SetTextI18n")
@Override
public void onTick(long millisUntilFinished) {
//倒計時的過程中回調該函數(shù)
back_home.setText("返回主頁 "+(millisUntilFinished / 1000+1) + " ");
}
@Override
public void onFinish() {
//倒計時結束時回調該函數(shù)
finish();
}
}.start();
用以個變量mCountDownTimer1,當我們要跳轉到其他頁面時,就是用mCountDownTimer1.cancel();方法取消計時器,就不會出現(xiàn)上述情況了
CountDownTimer還會有計時不準確的問題,其實這個問題很多博客都有解析,這里就不再贅述。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Android實現(xiàn)TCP客戶端接收數(shù)據(jù)的方法
這篇文章主要介紹了Android實現(xiàn)TCP客戶端接收數(shù)據(jù)的方法,較為詳細的分析了Android基于TCP實現(xiàn)客戶端接收數(shù)據(jù)的相關技巧與注意事項,需要的朋友可以參考下2016-04-04
Android利用ViewPager實現(xiàn)滑動廣告板實例源碼
利用ViewPager我們可以做很多事情,從最簡單的導航,到頁面切換菜單等等。ViewPager的功能就是可以使視圖滑動,就像Lanucher左右滑動那樣2013-06-06
Android Mms之:對話與聯(lián)系人關聯(lián)的總結詳解
本篇文章是對Android中對話與聯(lián)系人的關聯(lián)進行了詳細的分析介紹,需要的朋友參考下2013-05-05
Android App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例
這篇文章主要介紹了Android App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例,Android中自帶的JSONObject非常好用,需要的朋友可以參考下2016-03-03

