Android中Handler實現(xiàn)倒計時的兩種方式
更新時間:2017年07月01日 09:26:02 作者:huang_xiao_yu
本篇文章主要介紹了Android中Handler實現(xiàn)倒計時的兩種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
背景:
最近項目中,正好做到登錄/注冊這個功能塊。它需要通過發(fā)送驗證碼,在規(guī)定的時間內(nèi)用驗證碼來完成登錄/注冊。之前的項目中也有這個功能,但是覺得太復雜了,只好自己重新實現(xiàn)一遍。用Handler來做,覺得代碼簡介,邏輯也清楚。
代碼一:
//在向服務(wù)端發(fā)送獲取驗證碼成功的回調(diào)函數(shù)中,開始發(fā)消息:
mHandler.obtainMessage();
mHandler.sendEmptyMessage(MSG_CODE);
//消息的處理:
private static final int MSG_CODE = 0;
private int limitTime = 121;
private Handler mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
if(msg.what==MSG_CODE){
limitTime--;
if(limitTime>0){
mHandler.sendEmptyMessageDelayed(MSG_CODE,1000);
mBtnVerify.setText("倒計時:"+limitTime+"s");
}else{
mBtnVerify.setText("獲取驗證碼");
}
return true;
}
return false;
}
});
代碼二:
//在向服務(wù)端發(fā)送獲取驗證碼成功的回調(diào)函數(shù)中,開始發(fā)消息:
mHandler.post(myRunnale);
//消息的處理:
private int time = 11;
private Handler mHandler = new Handler();
private Runnable myRunnale = new Runnable() {
@Override
public void run() {
time--;
if(time>0){
mHandler.postDelayed(myRunnale,1000);
mTvChange.setText("剩余"+time+"s");
}else{
mTvChange.setText("完畢");
}
}
};
從上述代碼中可以看出:使用Handler.post(Runnable) 是一個發(fā)布Messgae的便利方法。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android開發(fā)實現(xiàn)簡單的觀察者與被觀察者示例
這篇文章主要介紹了Android開發(fā)實現(xiàn)簡單的觀察者與被觀察者,簡單描述了觀察者模式的概念、原理并結(jié)合實例形式分析了Android實現(xiàn)觀察者模式的簡單操作技巧,需要的朋友可以參考下2017-11-11
Android筆記之:App應(yīng)用之發(fā)布各廣告平臺版本的詳解
Android的廣告平臺是很多的,各市場對各平臺的接受程度是不一樣的,Android的開發(fā)者如果想集成廣告基本要考慮下面兩個問題2013-04-04
Flutter中如何實現(xiàn)無Context跳轉(zhuǎn)詳解
這篇文章主要給大家介紹了關(guān)于Flutter中如何實現(xiàn)無Context跳轉(zhuǎn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Flutter具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-09-09

