我一直在我的小米设备上测试我的 NotificationListenerService 相关应用程序,发现一旦应用程序关闭,服务也会被杀死或处于非活动状态,我发现的解决方法是使用如下 URL 的 togglecomponent 方法:https: //gist.github.com/xinghui/b2ddd8cffe55c4b62f5d8846d5545bf9。
但是在这个例子中,我发现每次切换组件时都会创建多个客户端,它们都在监听通知,因此这会导致监听服务类预期的任务操作成倍增加。如何将创建的客户端数量限制为一个,或者有没有办法使用切换组件恢复旧客户端?或恢复 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);
}