¿Cómo puedo detener un temporizador?

Tengo una pregunta simple, ¿cómo puedo detener el temporizador?

Button bCancel = (Button)findViewById(R.id.bt1); bCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); startActivity(new Intent("com.jom.testcdt2.CANCELCLASS")); } }); final Thread logoTimer = new Thread(){ public void run(){ try { int logoTimer = 0; while (logoTimer < 10000) { sleep(100); logoTimer = logoTimer + 100; } startActivity(new Intent("com.jom.testcdt2.CLEARSCREEN")); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally{ finish(); } } }; logoTimer.start(); } 

Cuando presiono el botón bCancelar, se inicia una nueva actividad, pero el temporizador sigue funcionando y después de 10 segundos se inicia CLEARSCREEN. Al hacer clic en quiero que el temporizador se detenga. ¿Cómo puedo hacer eso?

Yo recomendaría usar un CountDownTimer :

 final CountDownTimer myTimer = new CountDownTimer(10000, 5000) { @Override public void onFinish() { //DO SOMETHING AFTER 10 000 ms } @Override public void onTick(long millisUntilFinished) { //DO SOMETHING EVERY 5 000 ms until stopped } } myTimer.start() //Starts it myTimer.cancel() //Stops it 

Y en lugar de escribir

 (new Intent("com.jom.testcdt2.CANCELCLASS") 

Deberías usar

 (new Intent(YOURCLASS.this, CancelClass.class) 

¿Podría intentar tener un valor booleano que compruebe en el bucle while y establecerlo en true cuando pulse el botón Cancelar?

 boolean pressedCancel = false; .... while (logoTimer < 10000 && !pressedCancel) { .... 
  • Visibilidad de ImageView Error con temporizador
  • Actualizar TextView utilizando Timer y ArrayList
  • Android: ejecuta un hilo repetidamente dentro de un temporizador
  • ¿Cuál es el enfoque más eficiente en cuanto a la batería de usar LocationClient para recibir actualizaciones periódicamente?
  • Visibilidad de un botón en el temporizador
  • Android no puede crear el controlador dentro del subproceso que no ha llamado looper.prepare ()
  • ¿Cómo puedo implementar un Timer / TimerTask que ejecuta un AsyncTask? (Androide)
  • Android / phonegap - Tiempo de respuesta del clic lento
  • Android: contador simple del tiempo
  • Android 2.2: ¿Cómo actualizar las vistas de texto automáticamente con un temporizador?
  • Eventos retardados en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.