Android Remote Service - PullRequest
       10

Android Remote Service

1 голос
/ 06 февраля 2011

Означает ли запуск службы Android в удаленном процессе, что он работает в другом потоке? Это разница между локальным и удаленным сервисом?

Аналогично, при вызове удаленного сервиса через IPC он сразу возвращается? Или он ждет действий, которые должны быть выполнены?

Ответы [ 3 ]

8 голосов
/ 06 февраля 2011

Означает ли запуск службы Android в удаленном процессе, что она выполняется в другом потоке?

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

Это разница между локальной и удаленной службой?

Обычно "удаленная служба" - это служба, предоставляемая отдельным приложением.

Аналогично, при вызове удаленного сервиса через IPC он сразу возвращается? Или он ждет действий, которые должны быть выполнены?

Вызовы синхронные - они должны быть, поскольку методы AIDL могут возвращать результаты. Когда клиент вызывает службу с помощью метода, определенного AIDL, клиент блокируется до тех пор, пока служба не вернется, независимо от того, какой процесс или поток использует какая-либо из сторон.

1 голос
/ 06 февраля 2011

Службы Android, по умолчанию, запускаются в том же потоке, что и Действия и т. Д .:

«Обратите внимание, что службы, как и другие объекты приложений, запускаются в главном потоке процесса их размещения». ref

Локальная служба - это служба, используемая другими компонентами в том же приложении во время компиляции: они могут вызывать методы службы так же, как и любой другой объект.

Удаленная служба - это служба, которая вызывается через AIDL, и взаимосвязь времени компиляции не требуется.

0 голосов
/ 10 июня 2011

Аналогично, при вызове удаленного сервиса через IPC он сразу возвращается? Или он ждет действий, которые должны быть выполнены?

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

Вы можете увидеть пример этого в документации для Android: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/RemoteService.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...