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(); } }