Я тестировал свое приложение, связанное с NotificationListenerService, на своем устройстве Xiaomi и обнаружил, что, как только приложение закрывается, служба также отключается или перестает работать, я нашел обходной путь использования метода togglecomponent, как по этому URL: 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);
}