Может ли служба доступности быть остановлена или убита?
Я написал службу доступности, и я хочу, чтобы служба была остановлена / уничтожена после получения события доступности (т.е. в методе onAccessibilityEvent
). Можно ли это сделать? Я пытался убить, используя процесс уничтожения, как показано ниже, но он не работает.
unbindService(mSvcConn);
android.os.Process.killProcess(android.os.Process.myPid());
Я дал ниже разрешение в AndroidManifest.xml
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
Я знаю, что служба специальных возможностей не может быть запущена программно, но не может быть также остановлена / убита?
2 ответа
Служба специальных возможностей не может удалить себя из списка включенных служб или убить собственный процесс без автоматического перезапуска, но вы можете вызвать AccessibilityService.setServiceInfo(new AccessibilityServiceInfo())
эффективно отключить ваш сервис.
призвание AccessibilityManager.isEnabled()
вернет true, но ваш сервис не будет получать события.
В Android 7.0 (API 24) вы можете позвонить disableSelf()
на AccessibilityService, чтобы отключить службу, которая также останавливает ее.