web-dev-qa-db-ja.com

CountDownTimerが実行されているかどうかの確認

CountDownTimerが実行されているかどうかを確認する方法を探していましたが、方法が見つかりません。助けていただければ幸いです。

if (position == 0) {

    mCountDown = new CountDownTimer((300 * 1000), 1000) {

        public void onTick(long millisUntilFinished) {
            mTextField.setText("seconds remaining: "
                    + millisUntilFinished / 1000);
        }

        public void onFinish() {
            mTextField.setText("0:00");
            String path = "/sdcard/Music/ZenPing.mp3";
            try {

                mp.reset();
                mp.setDataSource(path);
                mp.prepare();
                mp.start();

            } catch (IOException e) {
                Log.v(getString(R.string.app_name),
                        e.getMessage());
            }
        }
    }.start();

}

そのために、mCountDownが現在実行されているかどうかを確認するにはどうすればよいですか?

18
user3224105

次のコードでそれを示すbooleanフラグを設定するだけです

boolean isRunning = false;

mCountDown = new CountDownTimer((300 * 1000), 1000) {

    public void onTick(long millisUntilFinished) {
        isRunning = true;
        //rest of code
    }

    public void onFinish() {
        isRunning= false;
        //rest of code
    }
}.start();
44
Chintan Rathod

onTickは、実行中のプロセスのコールバックです。プロパティを設定してステータスを追跡できます。

isTimerRunning =false;

start -> make it true;内部OnTick -> make it true(実際には必要ありませんが、再確認してください)Inside OnFinish -> make it false;

isTimerRunningプロパティを使用して、ステータスを追跡します。

1
gvmani

CountDownTimerが実行されているかどうか、およびアプリがバックグラウンドで実行されているかどうかを確認します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            myButton.setText("Button clicked");
            countDownTimer = new CountDownTimer( 3000, 1000) {
                @Override
                public void onTick(long millisUntilFinished) {
                    //After turning the Smartphone the follow both methods do not work anymore
                    if (!runningBackground) {
                        myButton.setText("Calc: " + millisUntilFinished / 1000);
                        myTextView.setText("Calc: " + millisUntilFinished / 1000);
                    }
                }
                @Override
                public void onFinish() {
                    if (!runningBackground) {
                        //Do something
                    }
                    mTextMessage.setText("DONE");
                    runningBackground = false;
                    running = false;
                }
            };
            //timer started
            countDownTimer.start();
            running = true;
        }
    });
}

@Override
protected void onResume() {
    super.onResume();
    runningBackground = false;
}

@Override
protected void onPause() {
    runningBackground = true;
    super.onPause();
}
0
AndroidStorm