读书人

android TimerTask 动态设立时间

发布时间: 2012-08-22 09:50:35 作者: rapoo

android TimerTask 动态设置时间

Timer 以及TimerTask的用法,大概就是每隔一定的时间执行一段代码。具体的这里就不介绍了,比较简单。

这篇博客要说明的是,如何动态的设置时间。

下面要说明的是Timer在设置了一个任务之后,会按照你指定的时间进行循环。这个时候,如果你想修改时间,是很困难的,因为系统没有提供修改时间的接口。

我的做法是:把Timer和timertask都重新创建一个新的对象。再此设置你想要设置的时间。


class MyTimerTask extends TimerTask {


@Override
public void run() {
// TODO Auto-generated method stub

dowhatyouwant();


if (mTaskTime != mGetDataTime) {

mTimer.cancel();

Log.i(TAG, "handlemessage mTaskTime is " + mTaskTime + " mGetDataTime is "
+ mGetDataTime);
mTimer = new Timer();
mTaskTime = mGetDataTime;
myTask = new MyTimerTask();
mTimer.schedule(myTask, mTaskTime, mTaskTime);
}


Log.i(TAG, "get data in service!the time is " + mTaskTime);

}

}


在程序的其他地方重新设置mGetDataTime的值,当运行到run方法的时候,Timer会更新触发的时间,下一次的触发时间将会是你设置的mGetDataTime



读书人网 >Android

热点推荐