android-discuss icon indicating copy to clipboard operation
android-discuss copied to clipboard

如何在手动杀死应用后,让notification也消失

Open zhengyintracy opened this issue 9 years ago • 12 comments

应用的设计模式是在service中会发送notification给用户.如果用户正常退出应用notification会消失(比如用户按back键,退出应用时会取消notification.)

请问有什么方式可以实现在手动强杀应用后,也取消notification?

zhengyintracy avatar Nov 23 '15 02:11 zhengyintracy

我能想到的是在操作中加个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 .

LLin233 avatar Nov 23 '15 04:11 LLin233

退出进程就可以了

在主界面的ondestroy接口填写 android.os.Process.killProcess(android.os.Process.myPid());
ActivityManager activityMgr= (ActivityManager) getSystemService(ACTIVITY_SERVICE );
activityMgr.killBackgroundProcesses(getPackageName());

同时AndroidManifest.xml里面加入权限

echojiangyq avatar Nov 26 '15 02:11 echojiangyq

@itdazhu 这样操作的确可以取消notification,但问题是如何获取到手动杀死应用的时间?

zhengyintracy avatar Dec 11 '15 02:12 zhengyintracy

activity bind FrontgroundService. service 里面notify notification, 在service destory 时候 取消

Olaman avatar Dec 14 '15 04:12 Olaman

@Olaman 谢谢!

zhengyintracy avatar Dec 14 '15 08:12 zhengyintracy

想到两个方法,在你的service onDestory的时候

  1. cancel notification
  2. android.os.Process.killProcess(android.os.Process.myPid());

PS: service被干掉了,但是onDestory没有被调用,这种情况,没想到好的方法。

ruijun avatar Jan 14 '16 09:01 ruijun

有一个不太优雅的方法可以尝试下,就是写一个service,onStartCommand返回值为Service.START_STICKY,这个service的oncreate方法中做的事情就是取消掉应用的通知,这个service在app起来或者activity界面出时拉起。 缺点就是多增加了一个服务。

ishuqi avatar Apr 27 '16 04:04 ishuqi

在这个方法中调用删除nodification的逻辑 https://developer.android.com/reference/android/app/Service.html#onTaskRemoved(android.content.Intent)

winway avatar Aug 27 '23 02:08 winway

感谢您的关注,我会尽快给您答复

hanyueziad avatar Aug 27 '23 02:08 hanyueziad

你好,邮件已收到,谢谢

nickalc avatar Aug 27 '23 02:08 nickalc

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

272664150 avatar Aug 27 '23 02:08 272664150

这是来自QQ邮箱的自动回复邮件。   您好,您的邮件已收到。如有后续我查收后会立刻联系您。如在假期,我将在假期结束后,尽快给您回复。

rotyan avatar Aug 27 '23 02:08 rotyan