我有一个从Manifest启动的NotificationListenerService.该服务正在运行并正在处理通知.我想能够停止,取消绑定和删除(onDestroy调用).有人能提供一个最小的例子吗?
我已经尝试过实现ServiceConnection和unbind()和selfstop()但它仍然不会运行onDestroy.我还试图设置内联NotificationListenerService,但无法弄清楚如何绑定它.
正如在Android N谈话中的通知新内容中所提到的,a NotificationListenerService将永远绑定到系统.由于它们始终受系统约束,因此永远不会被破坏.
从Android N开始,您将能够调用requestUnbind()停止侦听并NotificationListenerService.requestRebind()重新开始,但在此之前没有特定的方法可以使系统解除绑定NotificationListenerService.
当然,您可以使用以下代码完全禁用该服务:
PackageManager pm = getApplicationContext().getPackageManager();
ComponentName componentName = new ComponentName(getPackageName(),
".YourNotificationListenerService");
pm.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
Run Code Online (Sandbox Code Playgroud)
这将阻止服务完全运行.不幸的是,这可能会产生副作用,系统暂时将您列入黑名单NotificationListenerService(因为它反复无法绑定到它),所以只有在您永久/半永久地禁用它时才应该使用它.
| 归档时间: |
|
| 查看次数: |
1471 次 |
| 最近记录: |