android服务死了通知栏退出,android – 应用程序崩溃后在状态栏中清除通知

这篇博客探讨了在Android应用程序中如何处理服务在后台运行时,即使UI已关闭,通知仍然显示的问题。作者遇到一个问题,即当用户点击崩溃应用的通知时,会出现NPE错误。为了解决这个问题,作者实现了一个自定义的未捕获异常处理器,该处理器在异常发生时取消所有通知,并调用默认的异常处理器。这种方法确保在应用程序崩溃时,状态栏中的通知能够被正确清除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我的应用程序中,我运行了几个服务.当用户停止应用程序(UI部分)服务仍在后台运行并且状态栏中显示通知(每个服务有一个)时.单击它时出现对话框,选择取消适当的服务.

这是我的问题.出现问题时,应用程序崩溃通知仍保留在状态栏区域中.是否可以在显示标准的android force关闭对话框之前清除所有通知?

当我尝试打开活动点击通知时,真正的错误是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);

}

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值