我是新的编程,我正在做一个android应用程序,我有一个要求,我需要监测一些30年代的日志。我正在使用一个计时器任务,但是正在发生的事情是,如果30秒结束并且run方法在终止后执行,计时器任务就不会重复。
这是我的密码:
connectivityTimerTask = new ConnectivityTimerTask();
timer = new Timer(true);
//timer = new Timer(); // tried with this but it is not working
timer.schedule(connectivityTimerTask,30 * 1000);
计时器任务:
public class ConnectivityTimerTask extends TimerTask {
@Override
public void run() {
Log.error("----- ACK NotReceived -----" + System.currentTimeMillis());
//resetMonitor(); using this method I am setting the timer again
}
}
我想知道安排重复时间的最佳做法是什么。我用的是正确的方法吗?我能用这个吗 resetMonitor()
方法?
3条答案
按热度按时间whlutmcx1#
要在设置的时间段后重复运行某些代码,请使用
Runnable
用一个Handler
就像这样取消
ubby3x7f2#
而不是
schedule()
,您可以使用可以按固定速率调度的计时器任务scheduleAtFixedRate
,当你想停止计时的时候
timer.cancel()
zte4gxcn3#
线路
在30秒延迟后运行任务,一旦任务完成,计时器的工作就完成了。
如果要保持定期运行任务,还必须指定一个时间间隔
请阅读此处的文档。