Android中Handler實現(xiàn)倒計時的兩種方式
更新時間:2017年07月01日 09:26:02 作者:huang_xiao_yu
本篇文章主要介紹了Android中Handler實現(xiàn)倒計時的兩種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
背景:
最近項目中,正好做到登錄/注冊這個功能塊。它需要通過發(fā)送驗證碼,在規(guī)定的時間內用驗證碼來完成登錄/注冊。之前的項目中也有這個功能,但是覺得太復雜了,只好自己重新實現(xiàn)一遍。用Handler來做,覺得代碼簡介,邏輯也清楚。
代碼一:
//在向服務端發(fā)送獲取驗證碼成功的回調函數(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;
}
});
代碼二:
//在向服務端發(fā)送獲取驗證碼成功的回調函數(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的便利方法。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
android設置adb自帶screenrecord錄屏命令
這篇文章主要介紹了android設置adb自帶screenrecord錄屏命令,需要的朋友可以參考下2018-11-11
android編程開發(fā)之全屏和退出全屏的實現(xiàn)方法
這篇文章主要介紹了android編程開發(fā)之全屏和退出全屏的實現(xiàn)方法,以實例形式較為詳細的分析了Android全屏及退出全屏的頁面布局與功能實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
Android 監(jiān)聽網(wǎng)絡狀態(tài)方法詳解
這篇文章主要介紹了Android 監(jiān)聽網(wǎng)絡狀態(tài)方法詳解的相關資料,需要的朋友可以參考下2017-07-07

