web-dev-qa-db-ja.com

androidでCountDownTimerを停止する方法

このタイマーを停止するにはどうすればいいですか?

すべてのクエリでタイマーをリセットしたいのですが、継続します。新しいクエリごとに新しいタイマーが追加されます。これを解決する方法は?

 new CountDownTimer(zaman, 1000) {                     //geriye sayma

            public void onTick(long millisUntilFinished) {

                NumberFormat f = new DecimalFormat("00");
                long hour = (millisUntilFinished / 3600000) % 24;
                long min = (millisUntilFinished / 60000) % 60;
                long sec = (millisUntilFinished / 1000) % 60;

                cMeter.setText(f.format(hour) + ":" + f.format(min) + ":" + f.format(sec));
            }

            public void onFinish() {
                cMeter.setText("00:00:00");
            }
        }.start();
10
Taha

変数として定義する必要があります

 CountDownTimer yourCountDownTimer = new CountDownTimer(zaman, 1000) {                     //geriye sayma

        public void onTick(long millisUntilFinished) {

            NumberFormat f = new DecimalFormat("00");
            long hour = (millisUntilFinished / 3600000) % 24;
            long min = (millisUntilFinished / 60000) % 60;
            long sec = (millisUntilFinished / 1000) % 60;

            cMeter.setText(f.format(hour) + ":" + f.format(min) + ":" + f.format(sec));
        }

        public void onFinish() {
            cMeter.setText("00:00:00");
        }
    }.start();

yourCountDownTimer.cancel();

詳細: https://developer.Android.com/reference/Android/os/CountDownTimer.html

34
Amir_P

コールバックメソッドのいずれかでthis.cancel()または単にcancel()を呼び出すことができます

6
Luca Murra

static CountDownTimer countDownTimer = null;

    if (countDownTimer != null) {
        countDownTimer.cancel();
    }
    countDownTimer = new CountDownTimer(50000, 1000) {
        public void onTick(long millisUntilFinished) {
            Log.e("seconds remaining : ", "seconds remaining : " + millisUntilFinished / 1000);
        }

        public void onFinish() {
            Log.e("done!", "done!");
        }
    };
    countDownTimer.start();
0
Dhiraj Kumar