android-discuss
android-discuss copied to clipboard
如何在手动杀死应用后,让notification也消失
应用的设计模式是在service中会发送notification给用户.如果用户正常退出应用notification会消失(比如用户按back键,退出应用时会取消notification.)
请问有什么方式可以实现在手动强杀应用后,也取消notification?
我能想到的是在操作中加个event….然后让service接到这个event以后把notification给取消掉, 具体在哪里可以检测到应用被强杀吗..? 没搞过不知道啊
zhengyintracy [email protected]于2015年11月22日周日 下午6:11写道: 应用的设计模式是在service中会发送notification给用户.如果用户正常退出应用notification会消失(比如用户按back键,退出应用时会取消notification.)
请问有什么方式可以实现在手动强杀应用后, 也取消notification?
— Reply to this email directly or view it on GitHub .
退出进程就可以了
在主界面的ondestroy接口填写
android.os.Process.killProcess(android.os.Process.myPid());
ActivityManager activityMgr= (ActivityManager) getSystemService(ACTIVITY_SERVICE );
activityMgr.killBackgroundProcesses(getPackageName());
同时AndroidManifest.xml里面加入权限
@itdazhu 这样操作的确可以取消notification,但问题是如何获取到手动杀死应用的时间?
activity bind FrontgroundService. service 里面notify notification, 在service destory 时候 取消
@Olaman 谢谢!
想到两个方法,在你的service onDestory的时候
- cancel notification
- android.os.Process.killProcess(android.os.Process.myPid());
PS: service被干掉了,但是onDestory没有被调用,这种情况,没想到好的方法。
有一个不太优雅的方法可以尝试下,就是写一个service,onStartCommand返回值为Service.START_STICKY,这个service的oncreate方法中做的事情就是取消掉应用的通知,这个service在app起来或者activity界面出时拉起。 缺点就是多增加了一个服务。
在这个方法中调用删除nodification的逻辑 https://developer.android.com/reference/android/app/Service.html#onTaskRemoved(android.content.Intent)
感谢您的关注,我会尽快给您答复
你好,邮件已收到,谢谢
这是来自QQ邮箱的假期自动回复邮件。 您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
这是来自QQ邮箱的自动回复邮件。 您好,您的邮件已收到。如有后续我查收后会立刻联系您。如在假期,我将在假期结束后,尽快给您回复。