2016-02-09 2 views
0

У меня есть приложение A и B. А содержит Service, который может быть запущен из B.управления другой службы приложений

Я знаю, как начать его, но как я могу отправить сообщение/Намерение от B к бегущему (фон), который принадлежит A?

+0

Проверьте здесь HTTP : //stackoverflow.com/questions/13745779/binding-to-a-service-from-another-app – malrok44

ответ

0

Как отправить сообщение/намерение от B к бегущей (фоновой) службе, принадлежащей A?

Вы можете сделать это таким же образом: позвоните startService(). startService() запустит услугу только при необходимости, но всегда звонит onStartCommand(), доставляя вам предоставленные вами Intent. Это работает в обоих направлениях: Пусковой услуга на B, B, начиная службу по А.

Альтернативные подходы включают в себя:

  • PendingIntent Передайте от А к В, и есть B использовать PendingIntent для связи обратно в а, либо позвонив startService() на услугу а или отправкой сообщений в динамически зарегистрированных BroadcastReceiver создана сервис-центром по

  • Проходят Messenger от а к в, и есть B использовать Messenger отправить Message объекты обратнона А (хотя это потребовало бы HandlerThread В процессе эксплуатации, в наиболее вероятном)

  • Have B связываются с сервис-центром, где экспортирует услуги и предлагает AIDL определенную привязку

+0

о 'PendingIntent', вы случайно знаете, что такое' code' в 'PendingIntent # send (int code) '? Я попытался выяснить, когда/где я могу получить к нему доступ, но не удалось ... – pskink

+0

@pskink: Я никогда не использовал это. Если бы я должен был догадаться, это результат, переданный в 'onActivityResult()', если этот 'PendingIntent' был создан с помощью' createPendingResult() 'on' Activity'. Это, в свою очередь, основано на 'setResult()' на 'BroadcastReceiver'. – CommonsWare

+0

спасибо, я проверю его, однако у меня есть сильное чувство, что он должен быть доступен равномерно в деятельности/приемнике/службе ... – pskink

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