Android – Service – método onDestroy () no se llama cuando se usa el comando Force Stop

Cuando detengo un servicio con el botón de detención en la ficha Servicios en ejecución, se llama al método onDestroy ().

Pero cuando debo detener la aplicación, onDestroy () nunca se llama.

¿Alguna explicación sobre esto?

O tal vez una solución para disparar onDestroy () cuando se detiene la fuerza?

¡Gracias!

Cuando tu fuerza detiene una aplicación, exactamente eso sucede – Es la fuerza detenida. Ninguna advertencia, ninguna devolución de llamada, apenas paró. Todo el proceso se destruye y ninguno de los componentes en ejecución (Actividades, Servicios, etc.) recibe ninguna advertencia.

No hay absolutamente ninguna garantía de que onDestroy() será llamado. Mueva cualquier código crítico de la aplicación en onPause() , que se llama en la mayoría de las circunstancias.

De la documentación :

Una vez que se crea la actividad, onPause() es el último método que se garantiza que se llamará antes de que el proceso se puede matar … onStop() y onDestroy() puede que no se llame. Por lo tanto, debe utilizar onPause() para escribir datos persistentes cruciales (como ediciones de usuarios) en el almacenamiento.

Para reiterar este punto, Force Stop no pretende ser elegante y salir de la aplicación de una manera cariñosa. Si tiene un código crítico que debe ejecutarse cada vez que termine la aplicación, debe ejecutarlo en onPause() .

Cuando la aplicación obtiene la parada de la fuerza, Process.killProcess () se llama pero no onDestroy () función. Ir a través de este enlace. Usted tendrá una idea. Android force ¿Detiene la devolución de llamada a la aplicación?

Estoy asumiendo que usted tiene el código que desea ejecutar en onDestroy() haciendo referencia a su línea:

"O tal vez una solución para disparar a Destruir () cuando la fuerza se detuvo?"

El método de Service public void onTaskRemoved (Intención rootIntent) es lo que está buscando, se llamará cuando la aplicación se detenga con la fuerza.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.