Diferencia entre un asesino de tareas matando una aplicación y el sistema operativo Android Matando una aplicación
¿Hay alguna diferencia entre lo que sucede cuando usas una aplicación Task Killer para matar una aplicación y qué sucede cuando el sistema operativo Android mata una aplicación debido a los escasos recursos?
El SDK de Android dice que el método Application.onTerminate()
no se llama cuando el sistema operativo elimina una aplicación debido a recursos escasos. Por lo tanto, suena como el sistema operativo no limpia estrechamente las aplicaciones y que hace exactamente lo que los asesinos de tareas muy debatido hacer.
- ¿Cómo manipulo la pila de actividades de Android?
- Android: Cancelar tarea asíncrona
- Iniciar nuevo subproceso en Async Task
- ¿Cómo llevar una Actividad al primer plano (o crear si no existe)?
- La aplicación comienza siempre nueva de la actividad de la raíz en lugar de reanudar el estado de fondo (Bug conocido)
Si hacen lo mismo, entonces los asesinos de tareas no hacen más daño que el sistema operativo en sí, ¿verdad?
- Android: Error de OutOfMemory y el backstack
- Android: ¿Cómo hacer que el lanzador abra siempre la actividad principal en lugar de la actividad infantil? (o de otro modo)
- Borrar tarea e iniciar una nueva actividad
- ¿Cómo funcionan los asesinos de tareas?
- Cómo terminar una actividad de otra actividad
- Android: ¿FLAG_ACTIVITY_NEW_TASK tiene efecto dentro del mismo proceso?
- Cómo evitar que el servicio se reinicie después de que la actividad se haya barrido desde el conmutador de tareas?
- Android, ¿cómo llevar una tarea al primer plano?
A partir de Froyo no hay diferencia. 🙂 Todo lo que un asesino de tareas puede hacer es matar -9 un proceso cuando está en el fondo, que es lo mismo que hace el OS cuando quiere su memoria. Y sí, esto no es una salida limpia y ordenada, es un matar-el-proceso-muerto-ahora mismo. De hecho, en entornos Android normales, Application.onTerminate () nunca se matará; Los procesos sólo desaparecen matando.
Antes de los asesinos de tareas Froyo tenía acceso a una API diferente – "fuerza de parada" – que les permitió detener mucho más brutalmente todas las aplicaciones. Esto incluye detener los servicios iniciados, eliminar las alarmas registradas, eliminar las notificaciones, etc.
¿Hay alguna diferencia entre lo que sucede cuando usas una aplicación Task Killer para matar una aplicación y qué sucede cuando el sistema operativo Android mata una aplicación debido a los escasos recursos?
Un asesino de tareas nukes la aplicación de la órbita. PendingIntents
el proceso, elimina todas las alarmas, elimina todos los PendingIntents
registrados (por ejemplo, para las actualizaciones de la ubicación), etc.
En la infrecuente ocasión en la que Android necesita finalizar un proceso para liberar RAM, acaba de terminar el proceso.
Si hacen lo mismo, entonces los asesinos de tareas no hacen más daño que el sistema operativo en sí, ¿verdad?
No, los asesinos de tareas hacen un poco más daño a la aplicación.
AFAIK por experiencia, cuando Android mata una aplicación no se puede contar con que se mate de forma limpia (no hay llamadas para destruir métodos). En cuanto a un asesino de la tarea … bueno, supongo que depende de cómo un asesino de la tarea específica se aplica.
Android hace un gran trabajo de gestión de recursos por sí mismo, pero un asesino de la tarea puede ser útil cuando usted quiere explícitamente matar algo. Y para responder a su pregunta, no creo que un asesino de la tarea hace más daño que cuando Android mata una aplicación.
- Android AudioRecord to Server sobre problemas de reproducción UDP
- Seleccionar varias imágenes en la Galería de Android