2013-11-22 5 views
8

Мое приложение требует, чтобы я периодически делать следующее:Как справиться с необходимостью межпроцессного взаимодействия в моем приложении Android?

  1. Отправить периодическую информацию пульса на сервере, один раз в 15 секунд
  2. Возьмите периодические снимки экрана и отправить их на сервер, один раз в 60 секунд
  3. Послать сообщение и опрашивать сервер для сообщений, один раз каждые 5 секунд

Я написал свои услуги по каждому из пунктов, перечисленных выше, но здесь, где мне нужна помощь, связь между этими услугами ...

Сердцебиение служба должна быть в состоянии:

  1. Получить некоторую информацию от службы захвата экрана.
  2. Очередь сообщения с помощью службы обмена сообщениями.

Экран служба захвата должна быть в состоянии сделать следующее:

  1. Fetch текущей деятельности из моего приложения
  2. Queue сообщение с услугой чата.
  3. служба

Оповещение должно быть в состоянии сделать следующее:

  1. Прием сообщений в очереди для отправки на сервер из приложения/услуги
  2. Отправка сообщений, полученных от сервера к приложение

Со всеми необходимыми коммуникационными путями мне интересно, как это сделать? Могу ли я просто привязать мое приложение ко всем сервисам? Связывать услуги с другими службами? Использовать какую-то другую связь?

Мне нужно, чтобы все эти службы продолжали работать/работать, даже если мое приложение не находится на переднем плане.

+2

Прежде всего, Android не может гарантировать, что * любые * фоновые приложения будут работать; это никогда не предназначалось для демонов. Во-вторых, периодический серверный опрос убьет батарею * и * план данных. В-третьих, это звучит откровенно жуткий - что с тихим захватом экрана? –

+0

Устройства будут монтироваться в общественных местах, подключенных к источнику питания и сети Wi-Fi, поэтому срок службы батареи/потребления не является проблемой. Цель экранов экрана - отслеживать, чтобы приложение работало правильно и помогало в отладке. – Ryan

+0

Тогда Android - очень плохой выбор для ОС. Рассмотрим один из более тонких вкусов Linux или Windows Embedded. –

ответ

4

условие more info in chat, но общая тяга:

  • использования AlarmManager для планирования invokations вещательного приемника
  • пусть сам приемник повторно график при вызове
  • пусть приемник послать команду услуга (это запустит сервис, если он еще не запущен)
  • Позвольте службе прокрутить нить
  • сделать HTTP в потоке
Смежные вопросы