先看下完整的代码,如是使用入职过去即可
public class MainActivity extends AppCompatActivity {
private TextView code;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
code = findViewById(R.id.rx_txt);
code.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.start();
}
});
}
CountDownTimer timer = new CountDownTimer(10 * 1000+1050, 1000) {
@Override
public void onTick(long millisUntilFinished) {
code.setClickable(false);
code.setText(millisUntilFinished / 1000 -1 + "秒");
Log.e("-----------time", String.valueOf(millisUntilFinished));
Log.e("---------时间", String.valueOf(millisUntilFinished/1000));
}
@Override
public void onFinish() {
code.setText("重新获取");
code.setClickable(true);
}
};
@Override
protected void onDestroy() {
super.onDestroy();
if (timer != null) {
timer.cancel();
}
}
}
CountDownTimer 里面第一个参数是总的时间,第二个是倒计时的时间,自己可以根据需求修改
它有2个方法一个是onTick 和 onFinish
点击和结束的方法 ,操作在里面即可。。。
为啥要在OnDestory 里面添加cancel, 因为CountDownTimer 底部调用的是Handler 为了内存泄漏所以呢cancel别忘记添加了
时间添加了1050 呢 是保证为了到时间显示0 每次时间准确些,打印的日志可以看出问题 。。。
转载:https://blog.csdn.net/qq_33210042/article/details/101287201
查看评论