Android NotificationListenerService应用意外重启问题咨询
NotificationListenerService 相关问题解答
中断调试后应用自动重启是否正常?
这个行为是正常的,本质是Android系统对NotificationListenerService的特殊管理机制导致的:
- 当应用获得系统授予的通知监听权限后,系统会和该Service建立强绑定关系
- 一旦进程因调试中断被杀死,系统会判定这是服务异常终止,为了维持通知监听功能,会自动重启对应的Service(连带重启应用进程)
- 注释清单文件里的Service定义后,系统找不到绑定的目标服务,自然不会触发重启逻辑
如何停止NotificationListenerService?
要彻底停止该Service,核心是让系统解除与它的绑定,具体操作如下:
- 引导用户进入系统设置的「通知权限管理」页面
- 找到目标应用,关闭其「通知监听」权限
- 权限关闭后,系统会解除与Service的绑定,Service会被正常销毁,进程也不会再被系统强制拉起
注意:仅通过代码调用stopSelf()或stopService()无法真正停止该Service,因为系统会基于绑定关系再次重启它,必须通过系统权限开关解除绑定才能彻底终止。
内容的提问来源于stack exchange,提问作者Maurizio Vivarelli
相关产品推荐
相关产品推荐

