¿Cómo eliminar todas las notificaciones cuando se cancela una aplicación de Android (actividad o servicio)?

Tengo una aplicación con una actividad y un servicio de intenciones que se ejecutan en segundo plano.

También hay una notificación que muestra una barra de progreso con el progreso del proceso en segundo plano (descarga muchos archivos de un servidor).

La actividad registra el progreso de la descarga (el usuario no puede utilizar la aplicación significativamente antes de descargarlos). Cuando se cierra esta actividad, se muestra la notificación con la barra de progreso.

Mi problema: cuando se cancela la aplicación a través del "administrador de tareas" (accesible a través del botón derecho de android 4.0, el que tiene los dos rectángulos), la notificación sigue estando allí. Pero básicamente es un zombie, porque el servicio que se utiliza para actualizarlo está muerto.

De una manera diferente: ¿Cómo puedo eliminar una notificación (o todas) cuando se cancela la aplicación?

4 Solutions collect form web for “¿Cómo eliminar todas las notificaciones cuando se cancela una aplicación de Android (actividad o servicio)?”

@ Ver public void onTaskRemoved (Intención rootIntent) . Esto se llama si el servicio está en ejecución y el usuario ha eliminado una tarea que viene de la aplicación del servicio. Si ha establecido el indicador ServiceInfo.FLAG_STOP_WITH_TASK , no recibirá esta devolución de llamada; En su lugar, el servicio simplemente se detendrá.

Puedes eliminar todas las notificaciones que tu aplicación ha creado con cancelAll() :

 NotificationManager nManager = ((NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE)); nManager.cancelAll(); 

Según los documentos de la API, esto

Cancelar todas las notificaciones mostradas anteriormente.

De la misma manera que cancel(int id) :

Cancelar una notificación mostrada anteriormente. Si es transitorio, la vista se oculta. Si es persistente, se eliminará de la barra de estado.

Parece que

OnTaskRemoved

Del servicio se llama cuando el usuario mata la tarea de la aplicación (mediante la eliminación de la aplicación en el "administrador de tareas" .Soy capaz de eliminar la notificación de aquí.

No se puede realizar el seguimiento si la aplicación se ha eliminado de la clase Actividad o Aplicación.

Encontré una solución para esto en el siguiente enlace: Cancelar la notificación de la eliminación de la aplicación del panel multitarea

Por favor, pruebe esto.

¿Has probado onStop ? Funcionó para mí. Llamé a cancelAll () en onStop. Cierra todas las notificaciones de eliminación de la aplicación del Administrador de tareas.

Nota: también se eliminan todas las notificaciones cuando la aplicación entra en segundo plano. En ese caso, puede volver a invocar la notificación mediante el proceso en segundo plano.

 @Override public void onStop (){ super.onStop(); cancelAllNotification(getApplicationContext()); } public static void cancelAllNotification(Context ctx) { String ns = Context.NOTIFICATION_SERVICE; NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns); nMgr.cancelAll(); } 
  • ¿Cómo reiniciar automáticamente un servicio incluso si la fuerza del usuario lo cierra?
  • Icono de servicio persistente en la barra de notificaciones
  • Cómo saber si el usuario está en la pantalla de bloqueo desde el servicio
  • Servicio de asignar un montón de memoria?
  • Android - ¿Cómo decidir si ejecutar un servicio en un proceso separado?
  • Diseño de hilos múltiples de Android Service
  • Obtener: No se permite iniciar el servicio Intención ... sin permiso Proceso de servicio es malo
  • Cómo enlazar una actividad a un servicio y controlar y administrar el servicio desde la actividad
  • Uso de Alarmmanager para iniciar un servicio en un momento específico
  • Temporizador La tarea deja de ejecutarse después de un tiempo indefinido en android
  • Servicio de ejecución en el fondo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.