package com.ouwenjie.note.service;
import android.os.AsyncTask;
import android.widget.Button;
import com.ouwenjie.note.utils.LogUtils;
/**
* 倒计时按钮倒计时任务类
*
* @author Sam Sun
* @version $Revision:1.0.0, $Date: 2013-1-17 上午10:56:59
*/
public class CountDownTask extends AsyncTask<Void, Integer, Void> {
private int maxSecond = 60; // 倒计时秒数
private String title = "重发验证码"; // 倒计时按钮标题
private Button countDownBtn; // 倒计时按钮
public CountDownTask(Button countDownBtn) {
this.countDownBtn = countDownBtn;
}
public CountDownTask(Button countDownBtn, String title) {
this.countDownBtn = countDownBtn;
this.title = title;
}
public CountDownTask(Button countDownBtn, int mSec) {
this.countDownBtn = countDownBtn;
this.maxSecond = mSec;
}
public CountDownTask(Button countDownBtn, int mSec, String title) {
this.countDownBtn = countDownBtn;
this.maxSecond = mSec;
this.title = title;
}
@Override
protected Void doInBackground(Void... params) {
int count = maxSecond;
while (!isCancelled() && count >= 0) {
try {
LogUtils.d("倒计时==" + count);
publishProgress(count);
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
--count;
}
}
return null;
}
@Override
protected void onPreExecute() {
// 预处理
countDownBtn.setEnabled(false);
countDownBtn.setBackgroundResource(android.support.v7.appcompat.R.color.material_deep_teal_200);
}
@Override
protected void onProgressUpdate(Integer... values) {
// 更新进度
countDownBtn.setText(title + "(" + values[0] + ")");
if (values[0] == 0) { // 计数完成,则复位
countDownBtn.setEnabled(true);
countDownBtn.setBackgroundResource(android.support.v7.appcompat.R.color.material_deep_teal_500);
countDownBtn.setText(title);
}
}
}