問題 アンドロイドで開発中にタイマーを停止する際に問題が発生しています。Androidで停止していないタイマ
タイマーはすでに停止しています。
次に、ヌル問題を解決するTimerTaskのようにメソッドの外にタイマーの初期化を移動しますが、timer.cancel();
が呼び出されたときにキャンセルされません。
以下のコードは、録画を停止する際に、すでにヌルになっているタイマーの例です。
TimerTaskを
マイTimerTask
...クラスの内部ではなくメソッドと以下のコードの外
private TimerTask task = new TimerTask() {
@Override
public void run() {
Log.e("TRACK_RECORDING_SERVICE","Timer Running");
}
};
タイマー&タイマスタート
私は、持っているが初期化されますタイマーを起動したいときに呼び出されるstartRecrodingメソッド...
public void startRecording(){
timer = new Timer("Message Timer");
timer.scheduleAtFixedRate(this.task, 0, 1000);
}
タイマーストップ
私はタイマーを停止したいとき、私はその後、すべてのヘルプははるかに高く評価されるだろう...
public void stopRecording() {
if (timer != null) {
timer.cancel();
timer = null;
} else {
Log.e("TRACK_RECORDING_SERVICE","Timer already null.");
}
}
を以下のメソッドを呼び出します。ここで
task.cancel()に続けてtimer.purge()を実行しましたか? – Steelight