2016-01-24 6 views
1

У меня есть удаленный сервис, который прослушивает сокет UDP. Вся передача/получение UDP происходит через службу. Эта служба запускается при загрузке и сохраняется до тех пор, пока пользователь не удалит службу. Несколько приложений (клиентские приложения) могут обращаться к этой службе, чтобы отправлять данные через UDP-сокет.привязка к классу обработчика формы удаленной службы (AIDL) android

Когда сообщение получает удаленное обслуживание, оно передает это сообщение. Клиентские приложения могут захватывать эти широковещательные сообщения через широковещательный приемник. Чтобы обрабатывать пойманные сообщения, клиентские приложения имеют класс обработчика (простой Java-класс). Этот класс обработчика должен связываться с удаленной службой, чтобы отправлять сообщения обратно (для обслуживания).

Все эти коммуникации происходит в фоновом режиме (с вне взаимодействия с UI)

Так как я мог связать класс обработчика с удаленной службой. Могу ли я использовать сервисное соединение с простым классом java?

+0

'Handler' имеет определенное значение в мире Android. Вы на самом деле не имеете в виду Android Handler, поэтому, возможно, вам стоит выбрать другое слово. Это может вызвать меньше путаницы. –

ответ

0

Вы можете связать с Service с POJO (обычный старый объект Java). Вам понадобится доступ к Context, чтобы ваш POJO мог позвонить bindService(). Возможно, клиентское приложение передаст Context в качестве параметра конструктору вашего POJO или в качестве параметра какого-либо другого метода вашего POJO.

Ваш POJO должен будет предоставить ServiceConnection по телефону bindService(). Этот объект ServiceConnection получит обратные вызовы, когда Service подключен и отключен. Ваш POJO должен будет отслеживать, имеет ли он активное соединение с Service, чтобы он мог привязываться к Service, когда это необходимо.

Обратите внимание, что вызов bindService() является асинхронным. Это означает, что вам нужно будет дождаться обратного вызова ServiceConnection.onServiceConnected(), прежде чем вы сможете фактически вызвать методы на границе Service. Вызов onServiceConnected() выполняется в основном потоке (UI). Это может иметь некоторые последствия для архитектуры вашего приложения.

 Смежные вопросы

  • Нет связанных вопросов^_^