Очистить уведомление в строке состояния после сбоя приложения

В моем приложении запущено несколько служб. Когда пользователь останавливает приложение (часть пользовательского интерфейса), службы продолжают работать в фоновом режиме и отображают уведомления (они есть у каждой службы) в строке состояния. При нажатии на нее появляется диалоговое окно с возможностью отмены соответствующей услуги.

И вот моя проблема. Когда что-то идет не так и приложение вылетает, уведомления остаются в области строки состояния. Можно ли очистить все уведомления перед отображением стандартного диалогового окна принудительного закрытия Android?

Настоящая ошибка - это NPE, когда я пытаюсь открыть действие, нажав на уведомление. Это фиксированная. Но я только хочу знать, как все очистить при сбое приложения.


Вот мое окончательное решение, вдохновленное постом мышей. В приложении в методе создания я регистрирую 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);
}

спасибо

8
задан pcu 30 September 2011 в 09:02
поделиться