問題 Android での開発中にタイマーを停止する際に問題が発生しています。
停止に関しては、タイマーはすでに null です。
次に、タイマーの初期化をメソッドの外側に移動します。TimerTask は、null 問題を解決しますが、呼び出されたときにキャンセルされませんtimer.cancel();
。
以下のコードは、記録の停止に関してタイマーがすでに null になっている例です。
タイマータスク
MyTimerTask
はクラス内で初期化されますが、メソッドと以下のコードの外で...
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.");
}
}
どんな助けでも大歓迎です。