接口类:
/*
ShengDao Android Client, DownTimerListener
Copyright (c) 2014 ShengDao Tech Company Limited
*/
package com.sd.one.widget.downtime;
/**
* [倒计时监听类]
*
* @author devin.hu
* @version 1.0
* @date 2014-12-1
*
**/
public interface DownTimerListener {
/**
* [倒计时每秒方法]<BR>
* @param millisUntilFinished
*/
public void onTick(long millisUntilFinished);
/**
* [倒计时完成方法]<BR>
*/
public void onFinish();
}
处理类:
/*
ShengDao Android Client, DownTimer
Copyright (c) 2014 ShengDao Tech Company Limited
*/
package com.sd.one.widget.downtime;
import android.os.CountDownTimer;
import com.sd.core.utils.NLog;
/**
* [倒计时类]
*
* @author devin.hu
* @version 1.0
* @date 2014-12-1
*
**/
public class DownTimer {
private final String TAG = DownTimer.class.getSimpleName();
private CountDownTimer mCountDownTimer;
private DownTimerListener listener;
/**
* [开始倒计时功能]<BR>
* [倒计为time长的时间,时间间隔为每秒]
* @param time
*/
public void startDown(long time){
startDown(time, 1000);
}
/**
* [倒计为time长的时间,时间间隔为mills]
* @param time
* @param mills
*/
public void startDown(long time, long mills){
mCountDownTimer = new CountDownTimer(time, mills){
@Override
public void onTick(long millisUntilFinished) {
if(listener != null){
listener.onTick(millisUntilFinished);
}else{
NLog.e(TAG, "DownTimerListener 监听不能为空");
}
}
@Override
public void onFinish() {
if(listener != null){
listener.onFinish();
}else{
NLog.e(TAG, "DownTimerListener 监听不能为空");
}
if(mCountDownTimer != null)mCountDownTimer.cancel();
}
}.start();
}
/**
* [停止倒计时功能]<BR>
*/
public void stopDown(){
if(mCountDownTimer != null)mCountDownTimer.cancel();
}
/**
* [设置倒计时监听]<BR>
* @param listener
*/
public void setListener(DownTimerListener listener) {
this.listener = listener;
}
}
示例应用:
/*
ShengDao Android Client, MoerActivity
Copyright (c) 2014 ShengDao Tech Company Limited
*/
package com.sd.one.activity.common;
import android.os.Bundle;
import android.view.KeyEvent;
import com.sd.core.utils.NLog;
import com.sd.one.R;
import com.sd.one.activity.BaseActivity;
import com.sd.one.widget.downtime.DownTimer;
import com.sd.one.widget.downtime.DownTimerListener;
/**
* [更多页面]
**/
public class MoerActivity extends BaseActivity implements DownTimerListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.more_layout);
DownTimer downTimer = new DownTimer();
downTimer.setListener(this);
downTimer.startDown(30000);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return getParent().onKeyDown(keyCode, event);
}
@Override
public void onTick(long millisUntilFinished) {
NLog.i(MoerActivity.class.getSimpleName(), "倒计时:" + millisUntilFinished);
}
@Override
public void onFinish() {
NLog.i(MoerActivity.class.getSimpleName(), "倒计时完成!");
}
}