[Привязанный к Android сервис] [Связующий против мессенджера]

#android

#Android

Вопрос:

Я пытаюсь понять разницу между службой привязки, использующей messenger, и классом binder.В документации по Android было написано, что класс messenger следует использовать, когда нам нужно получить доступ к сервису через удаленную процедуру.Но я не могу найти пример, иллюстрирующий реализацию, которая не может быть выполнена с использованием класса binder.

Комментарии:

1. итак, с какой проблемой вы столкнулись?

2. Мне просто нужен пример, где IPC может быть реализован с использованием класса messenger, но то же самое нельзя сделать с использованием класса binder

3. чего именно вы хотите достичь?

4. Просто хочу понять разницу

Ответ №1:

Насколько я знаю, эти два класса поддерживают IPC в Android. Однако Binder более мощный, чем Messenger. И есть 3 разных момента между Binder и Messenger:

  • Messenger поддерживает связь между двумя процессами, Binder — нет (я имею в виду, что вы используете только Binder).

  • Binder и AIDL позволяют поддерживать связь между двумя процессами, выполняемыми в двух отдельных приложениях. Messenger не может этого сделать.

  • Binder и AIDL поддерживают многопоточность. В отличие от этого, Messenger этого не делает.

Я написал две простые демоверсии для Messenger amp; Binder в IPC. Надеюсь, они могли бы вам помочь.

https://github.com/nguyentrungduy/Interprocess-with-Messenger
https://github.com/nguyentrungduy/Interprocess-With-AIDL