要实现一个发短信倒计时多少秒功能一般会采用Thread+Handler 这里介绍一个最近发现的比较好用的体统提供的CountDownTimer 比起Thread+Handler代码更加简洁
先上效果
![](https://img.haomeiwen.com/i36564/c047ed2821d36fbb.gif)
]
上代码:
package guandongchen.com.countdowntomerdemo;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button button;
private CountDownTimer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startTimer(10);
}
});
}
private void startTimer(int time) {
timer = new CountDownTimer(time*1000,1000){
@Override
public void onTick(long l) {
button.setEnabled(false);
button.setText((int)l/1000+"");
}
@Override
public void onFinish() {
button.setEnabled(true);
button.setText("发送验证码");
}
};
timer.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (timer!=null){
timer.cancel();
}
}
}
关于CountDownTimer
官网介绍:https://developer.android.com/reference/android/os/CountDownTimer.html
![](https://img.haomeiwen.com/i36564/6c4a73f14509f4f8.png)
看重点一句话就是芥末简单
Demo 下载地址:https://github.com/chenguandong/CountDownTomerDemo.git
网友评论