2017-09-11 19 views
0

現在実行中のタイマータスクを停止し、別の遅延で再起動する必要があります。私はいくつかの方法を試しましたが、何も正しく機能しません次のコードを使用すると、TimerTaskは両方の遅延で実行されます。Androidでタイマータスクを停止して再起動する

public void restUploadInterval(long newDelay) { 
     timerRealData.cancel(); 
     timerRealData.purge(); 
     mMqttSupporter = MqttSupporter.getInstance(); 
     Timer timerRealData = new Timer(); 
     delay = newDelay; 
     UploadingTask uploadingTask = new UploadingTask(); 
     timerRealData.scheduleAtFixedRate(uploadingTask, delay, delay); 
    } 

現在のタイマータスクを停止し、別の遅延で再実行する方法を教えてください。

+0

タイマータスククラスの新しいインスタンスを作成すると、タイマータスクの複数のインスタンスがバックグラウンドで実行されます。新しいオブジェクトを作成する代わりに、新しいタイマータスクに同じオブジェクトを使用します。 –

答えて

0

正確にあなたがしたように。

タイミングが異なるタイマーを再起動するには、古いタイマーをキャンセル()して新しいタイマーを作成する必要があります。

メンバー変数timerRealDataが同じ名前のローカル変数で非表示になっているため、あなたのコードはおそらく動作していません。

は、変更しよう:

タイマーtimerRealData =新しいTimer();

timerRealData =新たなタイマと

()。

とする必要があります。

関連する問題