CountDownTimer的使用和内部类的内存管理
一、概述
在项目开发中经常会用到倒计时这个功能,而Android也帮我们封装好了一个类CountDownTimer,给我们的开发带来了很大的方便;
二、API
CountDownTimer (long millisInFuture, long countDownInterval) 参数1,设置倒计时的总时间(毫秒) 参数2,设置每次减去多少毫秒
三、基本用法
以App中获短信取验证码为例:
private Button btn;
private TextView vertifyView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView();
}
private void initView(){
vertifyView =(TextView) findViewById(R.id.vertifyView);
btn =(Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//1,请求后台...
//2,触发定时器刷新UI(启动代码最好放在请求后台回调成功之后)
timer.start();
}
});
}
private CountDownTimer timer = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
vertifyView.setText((millisUntilFinished / 1000) + "秒后可重发");
}
@Override
public void onFinish() {
vertifyView.setEnabled(true);
vertifyView.setText("获取验证码");
}
};
ok~这样一个基本的CountDownTimer案例就完成了
四,存在的问题
CountDownTimer如果使用不当,常常会报空指针异常,甚至造成严重的内存泄漏