Borrar notificación en la barra de estado después de que la aplicación se estrelló
En mi aplicación tengo varios servicios funcionando. Cuando los servicios de la aplicación de detención de usuario (parte de interfaz de usuario) permanecen en ejecución en segundo plano y las notificaciones de visualización (cada servicio tiene uno) en la barra de estado. Al hacer clic en el cuadro de diálogo aparece con la opción de cancelar el servicio adecuado.
Y aquí está mi problema. Cuando algo sale mal y la aplicación se bloquea, las notificaciones permanecen en el área de la barra de estado. ¿Es posible borrar todas las notificaciones antes de mostrar el diálogo de cierre de la fuerza android estándar?
- Borrado de la notificación después de unos segundos
- ¿Cómo puedo marcar el contenido del texto en la notificación?
- Tamaños de las imágenes pequeñas y grandes de la notificación de Android
- Android a veces tengo android.app.RemoteServiceException: Notificación incorrecta enviada desde el paquete. ¿Por qué?
- Notificación de estilo InboxStyle
El error real es NPE cuando intento abrir actividad haciendo clic en notificación. Está arreglado. Pero sólo quiero saber cómo borrar todo cuando la aplicación se bloquea.
Esta es mi solución final inspirada en el post de los ratones. En la aplicación en el método de creación, me registro Thread.setDefaultUncaughtExceptionHandler ()
@Override public void onCreate() { super.onCreate(); this.notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); UncaughtExceptionHandler appHandler = new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { this.notificationManager.cancelAll(); defaultHandler.uncaughtException(thread, ex); } }; Thread.setDefaultUncaughtExceptionHandler(appHandler); }
Gracias
- Generador de notificaciones de Android getNotification () vs build ()
- Notificación de estilo de imagen grande de Android con texto de resumen de líneas múltiples
- Android: Iniciar el primer plano no mostrará la notificación correctamente
- Recordatorio de Android
- El proceso de fondo de la aplicación se detiene, si el dispositivo se ha iniciado
- Cómo hacer que la notificación sea inalcanzable / inamovible
- ¿Cómo puedo activar las vibraciones y las luces con la API de notificaciones de Android?
- Android gran icono de notificación, hay una manera de eliminar el icono más pequeño en la parte inferior derecha?
Usted puede llamar
Thread.setDefaultUncaughtExceptionHandler ()
Con un controlador que se llamará cuando la aplicación no ejecuta la excepción en el subproceso. Este manejador se invoca en caso de hilo muere debido a una excepción no controlada.
Aquí usted haría el trabajo de limpieza necesario.
Esta es exactamente la forma en ACRA de la biblioteca de informes de accidentes es la captura accidentes.
Lo primero que necesita para asegurarse de que su application should not get crashed at any cost
y responder a su pregunta, debe anular el método onDestroy()
del servicio y cancelar la notificación allí, ya que funcionará para usted en ambos casos cuando el servicio se detiene o Se bloquea
Como no se puede usar onDestroy()
en caso de crash
, por lo que es necesario poner try catch block
y después de obtener excepción realizar la acción apropiada.
- Error de Android: no se puede realizar esta operación porque se ha cerrado el grupo de conexiones
- Utilice Android GPS para detectar y conectarse con otros teléfonos