繁体   English   中英

活动遭到破坏或应用崩溃时,Android删除通知

[英]Android Remove notification when activity destroyed or App crashed

当我的应用由于任何原因崩溃时,不会调用onDestroy()方法。 我的通知也不会被删除。 在哪里notifi.cancel(1); 应用程序崩溃时调用方法来删除通知吗?

@Override
protected void onDestroy() {
    super.onDestroy();

    if (nm != null) {
        nm.cancel(0);
    }

}

不幸的是,当应用崩溃时,不会调用onDestroy() 要在应用崩溃之前获取回调,您应该使用此处提到的Exception Handler。 您应该在异常处理程序中编写用于删除通知的代码。

Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler() {

        @Override
        public void uncaughtException(Thread thread, Throwable ex) {
            new Thread() {
                @Override
                public void run() {
                    Looper.prepare();  
                    // Cancel Notification
                    if (nm != null) {
                        nm.cancel(0);
                    }
                    Looper.loop();
                }
            }.start();
        }
    });

您也可能想看看这个非常相似的问题

当系统内存不足或调用finish()方法时,将调用onDestory() finish()方法。 因此,当您的应用程序崩溃时,将不会调用onDestory()方法。 检查此 还检查了这

在哪里运行notifi.cancel(1)的最佳位置; 方法?

您可以在notifi.cancel(1);任何位置调用notifi.cancel(1); 这一切都需要什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM