Android - Сервис специальных возможностей VS Фоновый сервис
В чем разница между сервисом доступности и фоновым сервисом? Когда я должен использовать друг друга?
2 ответа
Эти два служат различным целям полностью:
Фоновая служба - если не указано иное, большинство операций, выполняемых в приложении, выполняются на переднем плане в специальном потоке, называемом потоком пользовательского интерфейса. Это может вызвать проблемы, потому что длительные операции будут мешать отзывчивости вашего пользовательского интерфейса. Это раздражает ваших пользователей и может даже вызвать системные ошибки. Платформа Androind позволяет вам выполнять эти виды операций в фоновом потоке.
Доступность. Многие пользователи Android имеют разные способности, которые требуют от них взаимодействия с их устройствами Android по-разному. К ним относятся пользователи, которые имеют визуальные, физические или возрастные ограничения, которые мешают им полностью видеть или использовать сенсорный экран, и пользователи с потерей слуха, которые могут быть не в состоянии воспринимать звуковую информацию и предупреждения.
Служба специальных возможностей работает в фоновом режиме и получает обратные вызовы системой при запуске AccessibilityEvents. Такие события обозначают некоторый переход состояния в пользовательском интерфейсе, например, изменение фокуса, нажатие кнопки и т. Д. Такой сервис может дополнительно запрашивать возможность запроса содержимого активного окна. Разработка службы доступности требует расширения этого класса и реализации его абстрактных методов.
Используйте специальные возможности, если вы считаете, что пользователям потребуется специальная помощь с вашим приложением. Используйте фон для длительных задач, чтобы ваш интерфейс был быстрым.
Фоновая служба позволяет выполняться, когда пользовательский интерфейс отсутствует (например, когда приложение «закрыто»). Он может получить «приоритет переднего плана», чтобы иметь возможность оставаться в живых в долгосрочной перспективе, отображая пользователю давнее уведомление «переднего плана». Приоритет «передний/фоновый» происходит на уровне процесса, а не на уровне потока. Фоновая служба не улучшает отзывчивость пользовательского интерфейса, поскольку она использует основной поток/поток пользовательского интерфейса так же, как и любое действие. Любой другой поток может быть использован для решения проблемы отсутствия ответственности пользовательского интерфейса.
Служба специальных возможностей такая же, хотя она получает особый тип события, соответствующий взаимодействиям пользователя, и требует ручной настройки пользователем через настройки (ее нельзя активировать программно). Ему не нужно уведомление переднего плана.