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
作者:kkk0526
补充:移动开发 , Android ,