Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 10/08/15, 09:20:47
Avatar de laremi
laremi laremi no está en línea
Usuario poco activo
Mensajes: 2
 
Fecha de registro: ago 2015
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
la app no se detiene

Hola.

Estoy haciendo una app con Bluetooth. El manejo del bluetooth es mediante hilos Async.
Todo parece funcionar bien, pero cuando le doy al botón back del móvil, la aplicación aparentemente se para, pero en el android studio, en la ventana del log se siguen registrando eventos del tipo Log.e y no parece detenerse nunca.
Cuando le das botón "terminate aplicattion" la aplicación entonces sí se detiene.
En OnStop y enOnDestroy detengo los sockets y cierro todos los hilos, con close(true) y nada. Sigue cabezonamente hasta que le doy a al "terminate".
¿Que puede ocurrir?. ¿Como se puede hacer que una app se detenga de verdad?.

Gracias.
Responder Con Cita


  #2  
Viejo 10/08/15, 10:05:27
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Los hilos no principales tienen vida propia, literalmente. El cancel(true) tampoco garantiza que se cancele la asyntask, de hecho diría que prácticamente no vale para nada más que para llamar al onCancelled al finalizar y que el método isCancelled() devuelva true.

Tienes que asegurarte en el código que no hay bucles ni nada en la asyntask que le impida finalizar la tarea. Si tienes algún bucle, deberías comprobar en cada iteración si la tarea ha sido cancelada (con isCancelled()) para saltarte el bucle y que termine la ejecución del código de la tarea.
Responder Con Cita
  #3  
Viejo 10/08/15, 11:42:00
Avatar de laremi
laremi laremi no está en línea
Usuario poco activo
Mensajes: 2
 
Fecha de registro: ago 2015
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
mocelet, gracias por tu respuesta. Lo he comprobado y se acaban todos los bucles.
Tengo en el OnStop una llamada a los cancel y he comprobado uno a uno que se cierran todos los bucles, pero el problema persiste.
Otra cosa que he detectado mientras comprobaba que se cierran todos los bucles es que a veces no se ejecuta el evento OnStop ni OnDestroy cuando se sale de la aplicación. Salgo con el boton back no con el home.
Sigo mirando.
Responder Con Cita
  #4  
Viejo 10/08/15, 11:56:48
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Ciertamente el mejor sitio es onPause, el onStop y el onDestroy igual ni llegan a llamarse como bien dices.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 23:15:35 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007