Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo detener / cancelar android CountdownTimer

Estoy extendiendo la clase CountDownTimer para obtener alguna funcionalidad personalizada. En onTick () en caso de que se cumplan algunas condiciones llamo cancel (), esperando que sea el final de ella, sin embargo la devolución de llamada onTick () obtiene llamada hasta que el recuento Abajo. Entonces, ¿cómo evitar que esto suceda?

  • Devolución de una secuencia de entrada del descriptor de archivo de parcela mediante Androids DownloadManager
  • Android Studio, ProGuard no puede calcular hash de Classes.jar
  • ¿Cómo puedo crear una base de datos en android?
  • Paquete de errores android.support.design.widget no existe
  • Cómo utilizar TabHost.OnTabChangeListener en android?
  • Declaración de espacio de nombres Xml: auto-substitute package name
  • ¿Cómo puedo animar una vista en Android y mantenerla en la nueva posición / tamaño?
  • Android keystore dañado
  • Reproducir sonido con SoundPool
  • Android studio 2.2 cómo aplicar dagger2 sin el complemento de android-apt
  • Ejecutar una aplicación de Android en Eclipse causa NullPointerException
  • SQLite Android. No puede abrir el archivo de base de datos
  • 3 Solutions collect form web for “Cómo detener / cancelar android CountdownTimer”

    El método CountDownTimer.cancel () parece no estar funcionando. Aquí hay otro hilo sin una solución El temporizador no se detiene en android .

    Yo recomendaría que utilice Timer en su lugar. Es mucho más flexible y se puede cancelar en cualquier momento. Puede ser algo así:

    public class MainActivity extends Activity { TextView mTextField; long elapsed; final static long INTERVAL=1000; final static long TIMEOUT=5000; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextField=(TextView)findViewById(R.id.textview1); 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); }}); } } 

    CountDownTimer también está funcionando bien para mí, pero creo que sólo funciona si lo llaman fuera de la implementación CountDownTimer (que es no lo llaman en el onTick).

    Llamarlo dentro tampoco funcionó.

    He intentado este fragmento de código, ya que la mayoría de las respuestas están diciendo que no se puede cancelar el temporizador dentro de su aplicación, por lo que he intentado utilizar un controlador dentro de fin. Old post pero si alguien viene a través de este es útil.

     new Handler().post(new Runnable() { @Override public void run() { timerTextView.setText("00:" + String.format("%02d", counter)); cancel(); } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.