gpt4 book ai didi

Android:停止、解除绑定(bind)和完全删除 NotificationListenerService 的正确方法

转载 作者:行者123 更新时间:2023-11-29 14:26:46 40 4
gpt4 key购买 nike

我有一个从 list 启动的 NotificationListenerService。该服务有效并正在处理通知。我希望能够停止、解除绑定(bind)和删除(调用 onDestroy)。有人可以提供一个最小的例子吗?

我已经尝试实现 ServiceConnection 和 unbind() 以及 selfstop() 但它仍然不会运行 onDestroy。我还尝试内联设置 NotificationListenerService 但无法弄清楚如何绑定(bind)它。

最佳答案

What's new with Notifications in Android N talk 中所述, NotificationListenerService 永远绑定(bind)到系统。由于它们始终受到系统的约束,因此它永远不会被破坏。

从 Android N 开始,您将能够调用 requestUnbind() 停止监听并调用 NotificationListenerService.requestRebind() 重新开始,但在此之前有没有特定方法可以使系统与您的 NotificationListenerService 解除绑定(bind)。

当然,您可以使用如下代码完全禁用该服务:

PackageManager pm  = getApplicationContext().getPackageManager();
ComponentName componentName = new ComponentName(getPackageName(),
".YourNotificationListenerService");
pm.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);

这将阻止服务完全运行。不幸的是,这可能会产生副作用,系统会暂时将您的 NotificationListenerService 列入黑名单(因为它多次无法绑定(bind)到它),因此只有在您永久/半永久禁用它时才应使用。

关于Android:停止、解除绑定(bind)和完全删除 NotificationListenerService 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37636479/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com