¿Cómo saber cuándo se ha matado mi aplicación?

Necesito saber cuando el usuario mata mi aplicación (Parada de fuerza). He estado leyendo el ciclo de vida de Android, que tiene las funciones onStop y onDestroy, estas están relacionadas con cada actividad que el usuario termina en mi aplicación, pero no cuando el usuario obliga a detener o mata a mi aplicación.

¿Hay alguna manera de saber cuándo el usuario mata la aplicación?

No hay forma de determinar cuándo se mata un proceso. ¿Cómo detectar si la aplicación android se detiene o se desinstala?

Cuando un usuario o la fuerza del sistema detiene su aplicación, todo el proceso se acaba de matar. No hay devolución de llamada hecha para informarle que esto ha sucedido.

Cuando el usuario desinstala la aplicación, al principio el proceso se elimina, a continuación, su archivo apk y directorio de datos se eliminan, junto con los registros en el Administrador de paquetes que decir a otras aplicaciones que los filtros de intención se ha registrado.

He encontrado una manera de hacer esto …..

1) Hacer un servicio como este

public class OnClearFromRecentService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.d("ClearFromRecentService", "Service Started"); return START_NOT_STICKY; } @Override public void onDestroy() { super.onDestroy(); Log.d("ClearFromRecentService", "Service Destroyed"); } @Override public void onTaskRemoved(Intent rootIntent) { Log.e("ClearFromRecentService", "END"); //Code here stopSelf(); } } 

2) Registre este servicio en Manifest.xml como este

 <service android:name="com.example.OnClearFromRecentService" android:stopWithTask="false" /> 

3) A continuación, inicie este servicio en su actividad de inicio

 startService(new Intent(getBaseContext(), OnClearFromRecentService.class)); 

Y ahora, cada vez que vaya a borrar la aplicación de android recientes Entonces este método onTaskRemoved () se ejecutará.

Crear una clase de aplicación

 onCreate() Called when the application is starting, before any activity, service, or receiver objects (excluding content providers) have been created. onLowMemory() This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. onTerminate() This method is for use in emulated process environments. 

Incluso si usted es la aplicación matado o la fuerza de parada, de nuevo Android comenzará su clase de aplicación

Siempre puedes usar este código:

 protected void onCreate(Bundle savedInstanceState) { //... Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { //inform yourself that the activity unexpectedly stopped //or YourActivity.this.finish(); } }); //... } 

Tengo idea.i alternativa tienen el mismo problema como you.above métodos no problema fix.my: "Quiero borrar todos los datos guardados toda la aplicación, cuando el usuario cierre completamente la aplicación"

Por lo tanto, he añadido clear () y borrar los datos guardados (de preferencia compartida o tinyDB) en la clase de aplicación.

  • Comportamiento extraño del ciclo de vida de la actividad - después onResume () también onPause () llamado ... ¿por qué?
  • Cómo saber si un Fragmento fue recreado o retenido
  • Ciclo de vida de android onActivityResult vs onStop
  • Ejecutar código en el estado onPause () o onStop () de la actividad
  • Cancelar notificación después de que la aplicación se cierre desde el fondo
  • Establecer un oyente personalizado para escuchar en toda la aplicación
  • Android DialogFragment desaparece después del cambio de orientación
  • Cómo administrar el estado de la interfaz de usuario y la pila posterior en un diseño de panel único / dual
  • Android Lifecycle - ActivityManager mata proceso -> Excepción al volver de fondo
  • Vista de Android - onAttachedToWindow y onDetachedFromWindow - cuándo se llaman en el ciclo de vida de la actividad?
  • ¿Cómo puedo guardar la pila trasera de la aplicación en un lote?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.