我已经在我的小米设备上测试了与NotificationListenerService相关的应用程序,发现该应用程序关闭后,该服务也会被终止或变为非活动状态,我发现的解决方法是使用类似URL的togglecomponent方法:https://gist.github.com/xinghui/b2ddd8cffe55c4b62f5d8846d5545bf9。
但是在此示例中,我发现每次切换组件时都会创建多个客户端,这些客户端都在监听通知,因此这会导致监听器Service类按预期的方式执行任务的多个操作。 如何将创建的客户端数量限制为一个, 还是有一种方法可以通过切换组件恢复旧客户端? 或恢复NotificationListenerService组件的任何其他替代方法 谢谢。
private void toggleNotificationListenerService() {
Log.d(TAG, "toggleNotificationListenerService() called");
ComponentName thisComponent = new ComponentName(this, /*getClass()*/ NotificationCollectorService.class);
PackageManager pm = getPackageManager();
pm.setComponentEnabledSetting(thisComponent, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(thisComponent, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
}