package com.jqmobile.core.utils.timer;
import com.jqmobile.core.utils.thread.AsyncTask;
public abstract class TimerTask<Params, Result> extends AsyncTask<Params, Result>{
/**
* 最后一次运行时间
*/
long _lastRunTime_ds=0;
/**
* 运行次数
*/
long _runTime_ds=0;
/**
* 定时器(小余1表示不循环)
*
* @return
*/
protected long period(){
return -1;
}
/**
* 加载延迟时间(定时延迟,或初始化执行延迟)
*
* @return
*/
protected long delay(){
return 0;
}
/**
* 任务id
* @return
*/
protected long id(){
return this.hashCode();
}
void executeNow(){
super.execute(getParams());
}
@Override
public TimerTask<Params, Result> execute(Params... params) {
setParams(params);
return execute();//super.execute(params);
}
public TimerTask<Params, Result> execute() {
BaseTimer.instance().add(this);
return this;
}
@Override
protected void onCancelled() {
BaseTimer.instance().remote(this);
super.onCancelled();
}
}