2010-09-29 11 views
10

¿Hay alguna diferencia entre lo que sucede cuando se usa una aplicación Task Killer para matar una aplicación y lo que sucede cuando el sistema operativo Android mata una aplicación por ser escasa? recursos?Diferencia entre un asesino de tareas Cómo matar una aplicación y el sistema operativo Android Cómo matar una aplicación

El SDK de Android dice que no se llama al método Application.onTerminate() cuando el sistema operativo mata una aplicación debido a los recursos escasos. Así que parece que el sistema operativo no cierra las aplicaciones limpiamente y que hace exactamente lo que hacen los asesinos de tareas tan debatidos.

Si hacen lo mismo, entonces los asesinos de tareas no hacen más daño que el propio sistema operativo, ¿no?

+2

Parece que tiene una http://en.wikipedia.org/wiki/Killer_app en sus manos. – ChessWhiz

Respuesta

0

AFAIK por experiencia, cuando Android mata a una aplicación no se puede contar con que se elimine limpiamente (no hay llamadas para destruir métodos). En cuanto a un asesino de tareas ... bueno, supongo que depende de cómo se implemente un asesino de tareas específico.

Android hace un gran trabajo gestionando recursos por sí mismo, pero un asesino de tareas puede ser útil cuando explícitamente quieres matar algo. Y para responder a su pregunta, no creo que un asesino de tareas haga más daño que cuando Android mata una aplicación.

3

¿Hay alguna diferencia entre lo que sucede cuando se utiliza una aplicación Task Killer para matar una aplicación y lo que sucede cuando el sistema operativo Android mata una aplicación debido a los recursos escasos?

Un asesino de tareas desactiva la aplicación desde la órbita. Finaliza el proceso, elimina todas las alarmas, elimina todas las PendingIntents registradas (por ejemplo, para actualizaciones de ubicación), etc.

En la infrecuente ocasión en que Android necesita finalizar un proceso para liberar RAM, simplemente finaliza el proceso.

Si hacen lo mismo, los asesinos de tareas no hacen más daño que el propio sistema operativo, ¿no?

No, los asesinos de tareas hacen un poco más de daño a la aplicación.

6

A partir de Froyo no hay diferencia. :) Todo lo que puede hacer un asesino de tareas es matar -9 un proceso cuando está en segundo plano, que es lo mismo que el sistema operativo cuando quiere su memoria. Y sí, esta no es una salida limpia y ordenada, es un proceso de matar a muerte, ahora mismo. De hecho, en entornos Android normales, Application.onTerminate() nunca será eliminado; los procesos solo desaparecen matando.

Antes de Froyo, los asesinos de tareas tenían acceso a una API diferente, "forzar detención", que les permitía detener todas las aplicaciones de forma más brutal. Esto incluye detener cualquier servicio iniciado, eliminar las alarmas registradas, eliminar notificaciones, etc.

Cuestiones relacionadas