我的应用程序中有一个定时器,每15秒启动一次AsyncTask。Android重新启动定时器被取消后
Timer timer = new Timer();
public void AsynchTaskTimer() {
final Handler handler = new Handler();
TimerTask timertask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try {
new updateGPSTask().execute();
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
});
}
};
timer.schedule(timertask, 0, 15000); // execute in every 15sec
}
这是从onCreate()
方法启动。
当我打电话给另一个活动时,我需要取消这个计时器,在我的主要活动中,我在onPause()
方法中使用了timer.cancel()
。
现在当我回到主要活动时,我需要重新启动计时器。我尝试在onRestart()
方法中重新启动AsynchTaskTimer()
,但我得到了java.lang.IllegalStateException: Timer was canceled
。
如何重新启动计时器?
在onpause中将timer设置为null,并重新启动它,如timer = new Timer();并启动它作为旧的散列对象被取消它不能重新启动,除非重新启动一个新的 – 2013-03-28 11:35:45
为什么你一起使用处理程序和计时器? – tony9099 2013-10-28 21:40:51