CountDownTimer.cancel () no funciona en Android
CountDownTimer.cancel()
no funciona en el siguiente código:
myTimer = new CountDownTimer(10000, 1000) { public void onFinish() { } @Override public void onTick(long millisUntilFinished) { if(null != myObject){ myTimer.cancel(); } } }.start();
En el código anterior he iniciado un CountDownTimer
que comprueba si el objeto no es null
y cancela el temporizador en consecuencia. El objeto es establecido por algún oyente en cualquier punto del tiempo. Por favor, consulte y sugiera. ¿Estoy haciendo lo correcto aquí?
- Android relanzando temporizadores después de que se cancelen
- Detener el temporizador y continuar
- Cómo mostrar el temporizador en android
- Equivalente a javax.swing.Timer en Android
- ¿Cómo puedo cancelar desde Device.StartTimer?
Solución Por Gautier Hayoun :
Acaba de hacer un reemplazo de Drop-in para CountDownTimer que puede cancelar desde dentro onTick: Github link – Gautier Hayoun Dec 12 '10 at 1:04
- Android - No puede eliminar la red Wifi de forma programática El método removeNetwork (int) en el tipo WifiManager no es aplicable a los argumentos (String)
- Cómo detener el temporizador handler.postDelayed () en Android
- Resched. Timer after cancel da "java.lang.IllegalStateException: Timer cancelado."
- Temporizador () como Daemon Vs non Daemon
- Android: contador simple del tiempo
- Android no puede crear el controlador dentro del subproceso que no ha llamado looper.prepare ()
- Android: para medir el tiempo entre los dos clics de botón
- Android: EditText pierde foco cuando se llama a setText
Solución Por Gautier Hayoun:
Acaba de hacer un reemplazo de Drop-in para CountDownTimer que puede cancelar desde dentro onTick: Github link – Gautier Hayoun Dec 12 '10 at 1:04
En lugar de TimerTask
use TimerTask
final static long INTERVAL=1000; final static long TIMEOUT=10000; TimerTask task=new TimerTask(){ @Override public void run() { elapsed+=INTERVAL; if(elapsed>=TIMEOUT){ this.cancel(); displayText("finished"); return; } //if(some other conditions) // this.cancel(); displayText("seconds elapsed: " + elapsed / 1000); } }; Timer timer = new Timer(); timer.scheduleAtFixedRate(task, INTERVAL, INTERVAL); private void displayText(final String text){ this.runOnUiThread(new Runnable(){ @Override public void run() { mTextField.setText(text); } }); }
- AdMob de Google Play Services realizará desplazamientos automáticos no deseados
- Android Generic User Agent (UA)