PDA

Ver la Versión Completa : Procesos y hebras


egesr
10/03/12, 10:37:17
Hola,

Tengo una duda sobre lo que he leído en la documentación de android. En principio, siempre que se vaya a realizar una operación de larga duración, es conveniente hacerlo en una nueva hebra, que será creada desde un Activity (o bien desde un servicio). Esto es conveniente para no bloquear la hebra principal, y por tanto, no bloquear la interfaz de usuario.

Por otro lado, segun he leido, se supone que android si necesitara recursos puede matar el proceso en el que corre aplicación. Para ello android realiza una búsqueda de la aplicación "menos importante" (Empty process, Background process, Service process, Visible process y foreground process).

Mi duda es la siguiente. Supongamos que mi aplicación, por ejemplo, lanza una hebra desde un Activity, y esta hebra corre en un bucle infinito en el cual realiza cierta operación cada cierto tiempo. ¿Puede android llegar a matar unicamente a la hebra "hija" (worker thread) y no al proceso sobre el cual corre la aplicación?

Según me ha parecido entender, android no mata hebras, sino que mata procesos de aplicaciones, es decir, que mata de golpe tanto la hebra principal (gui thread) como las hebras hijas lanzadas desde los componentes de la aplicación (activities, services, etc).

Muchas gracias

galcober
10/03/12, 11:28:00
No creo que te ayude mucho, porque no estoy seguro al 100%, pero creo que asi es, te mataría la aplicación entera.

egesr
11/03/12, 13:42:54
Hola,

En otro foro me han contestado q se mata la aplicación entera, no hebras sueltas de aplicaciones.

Un saludo

kriogeN
11/03/12, 15:40:08
Si podría pasar, pero si usas un servicio y es Android el que tiene que matarlo en cuanto vuelva a tener memoria disponible lo volverá a relanzar. Esto solo pasa si es el sistema el que decide hacerlo, si es de forma manual o un Task Killer el que realiza la operación el sistema no lo volverá a lanzar.