studio ejemplo android timer countdowntimer

ejemplo - show countdown timer android



Comprobando si CountDownTimer se está ejecutando (3)

He estado buscando un método para ver si un CountDownTimer se está ejecutando o no, pero no puedo encontrar la forma de hacerlo, cualquier ayuda sería muy apreciada

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(); }

Para eso, ¿cómo puedo verificar si mCountDown se está ejecutando actualmente?


Simplemente ponga una bandera boolean que indique que por el siguiente código

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();


onTick es su devolución de llamada para un proceso en ejecución, puede establecer una propiedad para rastrear el estado.

isTimerRunning =false;

Después de start -> make it true; Dentro de OnTick -> make it true (no requerido en realidad, sino una doble comprobación) Dentro de OnFinish -> make it false;

use la propiedad isTimerRunning para rastrear el estado.


Compruebe si CountDownTimer se está ejecutando y también si la aplicación se está ejecutando en segundo plano.

@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(); }