Quiero detener un hilo cuando se presiona un botón de retroceso.
Estoy usando Handler
.hilo de android sigue ejecutándose después de presionar el botón Atrás
Respuesta
Debe usar la función Handler
removeCallbacks()
.
Código de ejemplo:
@Override
public boolean onBackPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
handler.removeCallbacks(yourRunnable);
return true;
}
return super.onKeyDown(keyCode, event);
}
No puede usar los métodos stop
o destroy
. En el método onStop
, debe usar this.
verifique el enlace..en la palabra 'this' en la declaración anterior ... – Udaykiran
Está usando 'Handler' que no está en el mismo contexto como un' Tema' original. – Wroclai
ya eres rito. No podemos dejar o destruir el hilo y el método .. gracias por Guía Educativa vacas .. uno a voto para usted .. muchas gracias ... – Siten
Almacene una referencia al hilo al crearlo. En su actividad , pause o elimine el hilo de referencia.
Usted puede asignar una acción en la parte posterior pulse el botón anulando la función onBackPressed()
en su actividad. Esta acción debe tener un comando para detener el hilo. Aparecerá de la siguiente manera.
@Override
public void onBackPressed() {
super.onBackPressed();
thread.stop();
}
utilicé controlador ... y thread.stop(); o controlador.detener(); no es posible en la operación de retroceso – Siten
¿Le pusiste un nombre al hilo y lo usaste en onBackPressed? –
Aquí hay una demostración para detener el hilo de una manera más fácil y más rápida.
Button back = (Button)findViewById(R.id.back);
back.setText("Back");
back.setOnClickListener(this);
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
if(msg.obj.toString().contentEquals("hello"))
{
// do whatever u what to perform after thread stop....
}
removeDialog(0);
}
};
@Override
public void onClick(View v)
{
if(v==back)
{
showDialog(0);
t=new Thread()
{
public void run()
{
Message toMain = handler.obtainMessage();
toMain.obj = "hello";
handler.sendMessage(toMain);
}
};
t.start();
}
}
@Override
protected Dialog onCreateDialog(int id)
{
switch (id)
{
case 0:
{
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Connecting . . . . . .");
dialog.setIndeterminate(true);
dialog.setCancelable(true);
return dialog;
}
}
return null;
}
Utilice este método para crear o detener el hilo. Espero que tome menos tiempo.
Si está utilizando el manejador, puede simplemente eliminar las devoluciones de llamadas mediante handler.removeCallbacks (ejecutable); Esto debería funcionar perfectamente. Happy Coding :)
- 1. Cerrar la aplicación al presionar el botón Atrás en Android
- 2. Cómo ocultar el teclado después de presionar un botón Atrás de UINavigationBar en ios
- 3. Recargar la página al presionar el botón Atrás
- 4. Android - Simular el botón Atrás
- 5. Recordar ajax datos agregados al presionar el botón Atrás
- 6. Anular botón Atrás de Android
- 7. Excepción capturada pero el programa sigue ejecutándose
- 8. android: botón de volumen anulado ha afectado el botón Atrás?
- 9. Android - Evitar que una actividad se destruya, simplemente detenerla o detenerla al presionar el botón Atrás
- 10. cómo desactivar el botón Atrás en Android
- 11. Android: Cómo simular el botón Atrás
- 12. Anular botón Atrás en Android
- 13. Prevenir el botón Atrás después de cerrar sesión
- 14. El botón Atrás falla después de window.location.replace (href);
- 15. Impedir cancelar el modo de acción presionando el botón Atrás
- 16. Manejo del hardware de Android Botón Atrás
- 17. Comportamiento del botón Atrás de Android
- 18. botón Atrás no funciona después de mostrar Contacto
- 19. Capturar la tecla Atrás presionar en PhoneGap para Android
- 20. Interceptar el botón Atrás
- 21. Phonegap Android Botón Atrás - cerrar la aplicación con el botón Atrás en la página principal
- 22. Vista web de Android con el botón Atrás, si no
- 23. El botón Atrás de Android no reinicia la actividad?
- 24. android presionando el botón Atrás debe salir de la aplicación
- 25. resultado no configurado en onPause() usando setResult() al presionar el botón Atrás
- 26. Impedir que el botón Atrás cierre un cuadro de diálogo
- 27. Cómo evitar que un usuario vea información de usuarios anteriores al presionar el botón "Atrás"
- 28. Android: manejo del botón Atrás durante asynctask
- 29. Comportamiento del botón Atrás después de redireccionar-obtener
- 30. Android: cambiar las acciones del botón Atrás
@Viktor puse su código bt no funciona, todavía se está ejecutando el hilo ... – Siten
@siten: ¿Cómo puede determinar si su hilo todavía se está ejecutando? – Wroclai
CATlog me muestra el valor del hilo – Siten