【发布时间】:2011-09-30 06:42:52
【问题描述】:
在我的应用程序中,我有几个服务正在运行。当用户停止应用程序(UI 部分)时,服务仍然在后台运行并在状态栏中显示通知(每个服务都有一个)。单击它时会出现一个对话框,可以选择取消相应的服务。
这是我的问题。当出现问题并且应用程序崩溃通知仍保留在状态栏区域中。是否可以在显示标准 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);
}
谢谢
【问题讨论】:
-
如果我是您的应用程序的用户,我希望答案是“更加努力地工作,完全避免应用程序崩溃”。
-
K-ballo:即使是最好的应用程序也会崩溃,所以我认为这是一个很好的问题。没有通知比死通知更好。
标签: android notifications