アプリケーションに、15 秒ごとに AsyncTask を起動するタイマーがあります。
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()
メソッドから起動されます。
別のアクティビティを呼び出すときは、メイン アクティビティのメソッドで使用timer.cancel()
したこのタイマーをキャンセルする必要があります。onPause()
メイン アクティビティに戻ったら、タイマーを再起動する必要があります。メソッドで をAsynchTaskTimer()
再起動しようとしましたが、 .onRestart()
java.lang.IllegalStateException: Timer was canceled
タイマーを再起動するにはどうすればよいですか?