#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