倒计时 CountDownTimer
使用方式
CountDownTimer mCountDownTimer;
public void startCountDown(Context context, TextView captchaView) {
mCountDownTimer = new CountDownTimer(60 * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
if (null != captchaView) {
captchaView.setText(Html.fromHtml(String.format(getResources().getString(R.string.timer_sms), millisUntilFinished / 1000 + "")));
captchaView.setEnabled(false);
}
}
@Override
public void onFinish() {
if (null != captchaView) {
captchaView.setText(context.getString(R.string.get_verification_code_again));
captchaView.setTextColor(getResources().getColor(R.color.sign_color));
captchaView.setEnabled(true);
}
}
}.start();
}
public void stopCountdown(Context context, TextView captchaView) {
if (null != mCountDownTimer) {
mCountDownTimer.onFinish();
mCountDownTimer.cancel();
mCountDownTimer = null;
}
if (null != captchaView) {
captchaView.setEnabled(true);
captchaView.setText(context.getString(R.string.get_verification_code));
captchaView.setAlpha(1);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
stopCountdown(context, mTvForgetTimer);
}
封装类 只要传递 组件以及context 如果有别的文字展示 可以自己定义修改 也可以将倒计时时间作为参数传入 最后在onDestroy中调用stopCountdown消除定时器
public class CountDownUtils {
public static CountDownTimer mCountDownTimer;
public static void startCountDown(Context context, TextView captchaView) {
mCountDownTimer = new CountDownTimer(60000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
if (null != captchaView) {
captchaView.setText(String.format(context.getString(R.string.captcha_text),millisUntilFinished / 1000+""));
captchaView.setEnabled(false);
}
}
@Override
public void onFinish() {
if (null != captchaView) {
captchaView.setText(context.getString(R.string.get_verification_code_again));
captchaView.setEnabled(true);
}
}
}.start();
}
public static void stopCountdown(Context context, TextView captchaView) {
if (null != mCountDownTimer) {
mCountDownTimer.onFinish();
mCountDownTimer.cancel();
mCountDownTimer = null;
}
if (null != captchaView) {
captchaView.setEnabled(true);
captchaView.setText(context.getString(R.string.get_verification_code));
captchaView.setAlpha(1);
}
}
}