#android
#Android
Вопрос:
Я пытаюсь предоставить методы, используя мой подкласс Binder. Я собираюсь заставить свой сервис вернуть этот Binder и т.д. И т.п…
Мой вопрос: могу ли я определить методы вызова моей реализации Binder в других моих классах. В качестве примера я использую XMPP для подключения, входа в систему и отправки сообщений чата. Если я определю эти методы в другом классе (что имеет смысл с точки зрения модульности), могу ли я просто предоставить их через мой Binder?
Кроме того, я понимаю, что вам больше не нужно использовать AIDL для IPC (http://developer.android.com/guide/topics/fundamentals/bound-services.html#Messenger ), но вместо этого вы можете использовать мессенджеры. Мне немного неясно, как activity (или другой компонент приложения) будет привязываться, а затем вызывать определенный метод, предоставляемый моим Binder.
Любые примеры или просто разъяснение мне были бы весьма признательны.
Спасибо.
Ответ №1:
Мой вопрос: могу ли я определить методы вызова моей реализации Binder в других моих классах.
Вообще говоря, конечно, почему бы и нет?
Если я определю эти методы в другом классе (что имеет смысл с точки зрения модульности), могу ли я просто предоставить их через мой Binder?
В принципе, да, но это, вероятно, будет немного зависеть от того, что такое «эти методы» на самом деле.
Кроме того, я понимаю, что вам больше не нужно использовать AIDL для IPC (http://developer.android.com/guide/topics/fundamentals/bound-services.html#Messenger ), но вместо этого вы можете использовать мессенджеры.
Существует несколько способов выполнить IPC в Android с помощью сервисов. AIDL является одним из них. Добавление Messenger
в Intent
дополнение — это другое. Они не противоречат друг другу, и есть и другие варианты.
Мне немного неясно, как activity (или другой компонент приложения) будет привязываться, а затем вызывать определенный метод, предоставляемый моим Binder.
Они вызывают bindService()
с помощью ServiceConnection
, затем используют Binder
поставляемый через ServiceConnection
метод onServiceConnected()
.
Комментарии:
1. Сам Марк Мерфи, вау! Весь день читал о сервисах в трех ваших книгах. Имеет ли смысл, с точки зрения дизайна, иметь отдельный класс messenger для отправки сообщений в мою службу? А затем просто вызывающие методы сообщений класса messenger из моей активности?
2. @LuxuryMode: «Сам Марк Мерфи, вау!» Марк Мерфи? Где?? О, подожди, ты имеешь в виду меня. 🙂 Что касается вашего обсуждения «отдельного класса messenger», боюсь, я не совсем понимаю, что вы имеете в виду.