Подтвердить что ты не робот

Когда использовать услугу, основанную на помощи?

В каких обстоятельствах использование AIDL для определения интерфейса службы будет правильным решением (а не просто созданием расширения для service class)?

4b9b3361

Ответ 1

Вам необходимо использовать AIDL, если вы хотите, чтобы класс вне вашего приложения выполнял доступ к Сервису. Если вы используете эту услугу только внутри своего приложения, вы можете использовать локальную службу .

Ответ 2

Простое расширение класса сервиса не позволит вашей службе подвергать свои методы внешним объектам. Если вы хотите, чтобы ваш сервис подвергался/использовался кодом, который заканчивается из вашего приложения для Android, вам необходимо определить AIDL для него. Этот AIDL будет разделяться и формироваться как контракт для вашего обслуживания. Обратитесь к http://developer.android.com/guide/components/aidl.html.

Ответ 3

1. При использовании службы, основанной на помощи.

Несколько преимуществ могут быть достигнуты сегментной частью вашего кода в бэкэнд-сервис:

  • Отключить интерфейс и интерфейс
  • интенсивная обработка памяти/процессора может быть уложена в backend-сервис, GC в сервисе не повлияет на внешний интерфейс пользователя.
  • сбой службы не приведет к снижению всего APP

2. Как создать такую ​​услугу

Я написал хорошую библиотеку, вы можете указать в качестве примера http://github.com/zhchang/hogwarts

Ответ 4

AIDL

Язык определения интерфейса Android (AIDL) позволяет разработчикам определять интерфейс программирования, который клиент и сервер используют для взаимодействия друг с другом с помощью межпроцессного взаимодействия (IPC).

В этой статье показано, как подключиться к работающей службе в Android и как получить данные из удаленного/запущенного сервиса.

Пример механизма IPC

Пусть RemoteService - это клиентская служба, а RemoteServiceClient - это активность для связи с удаленной службой.

Одна служба предоставляет информацию о математических операциях, таких как сложение, вычитание и умножение для данных двух целых чисел. Чтобы показать функциональность того, что может сделать Служба, создайте файл .aidl в каталоге проекта.

Пример AIDL