/ / Androidのカウントダウンタイマーを再開する - アンドロイド、タイマー

Androidのカウントダウンタイマーを再開する - アンドロイド、タイマー

私はCountDownTimerでカウントダウンタイマーをコード化しようとしていて、停止時間から再開できるようにしています。これまで私は他の質問を参照してこれを考え出すことができました。

public void onClick(View v) {
getResume();

if ( getResume()==0) {
countDownTimer.start();
timerHasStarted = true;
startB.setText("STOP");
setResume(1);
Toast.makeText(this, getResume()+"",Toast.LENGTH_LONG).show();
} else if (getResume()==1) {
countDownTimer.cancel();
timerHasStarted = false;
startB.setText("RESTART");
setResume(2);
Toast.makeText(this, getResume()+"",Toast.LENGTH_LONG).show();
} else if (getResume()==2){
CountDownTimer rcdt = new MyCountDownTimer(s1, interval);
rcdt.start();
setResume(1);
}

}

したがって、getResume()はグローバルintを再開するだけです。timerHasStartedは私を非常に助けてくれなかったので、スイッチとして機能するために使用できると思っていました。しかし、resumeが2のときに新しいタイマーを作成しているので、タイマーを複数回再開できませんでした。このコードは、別のタイマーであるため、一度だけ再開させます。rcdt.start()が発生した後も.cancel()を実行することはできますが、明らかに重要な概念はありませんが、 https://gist.github.com/bverc/1492672 この場合とは異なり、私はmilisuntilfinished = s1を作成し、それを使って新しいタイマーを開始します。これは行くの?または上記のコードを動作させるための方法がいくつかありますか? 助けてください!

回答:

回答№1は0

この行を置き換えてみてください(if == 2の場合)

        CountDownTimer rcdt = new MyCountDownTimer(s1, interval);

〜と

countDownTimer= new MyCountDownTimer(s1, interval);

それが問題だったのであれば、私はその作品とあなたが誇らしげに思っていたことを知らせてください。