服务被终止时的java销毁前台通知
我有一个前台服务,可以从网上下载一些内容
不幸的是,由于报告here我的服务在接收器接收到我的服务内的广播时被终止的错误,但它的通知不会被终止,并且我在我的logcat中看到以下日志:
I/ActivityManager(449): Killing 11073:my-package-name/u0a102 (adj 0): remove task
当前台通知的父服务被操作系统杀死时,是否仍需要销毁前台通知
你可以在下面搜索框中键入要查询的问题!
我有一个前台服务,可以从网上下载一些内容
不幸的是,由于报告here我的服务在接收器接收到我的服务内的广播时被终止的错误,但它的通知不会被终止,并且我在我的logcat中看到以下日志:
I/ActivityManager(449): Killing 11073:my-package-name/u0a102 (adj 0): remove task
当前台通知的父服务被操作系统杀死时,是否仍需要销毁前台通知
# 1 楼答案
使用stopForeground:
或
# 2 楼答案
使用
onDestroy()
。尽管文档中说它不能保证被调用,但我已经测试了多次,唯一没有被调用的情况是当系统终止进程时,但是到那时,您的通知将被终止,所以没关系# 3 楼答案
如果服务仍在使用以下代码运行,则在通知内定期检查(例如
Handler
):如果不只是关闭通知
# 4 楼答案
您可以从服务类内的
onStop
或onDestroy
删除通知。 注:不保证这会起作用,在api 14及以上版本中,即使没有前台通知,服务仍可以运行,您可以返回START_STICKY,它将恢复您的服务,即使系统将其销毁,系统也将重新启动它# 5 楼答案
使用服务onTaskRemoved()方法
# 6 楼答案
服务结束删除前台通知