Нужна помощь в принятии архитектурных решений для приложения Android - PullRequest
2 голосов
/ 09 января 2012

Ситуация

Я новичок в мире Android.Я начинаю новый проект по написанию приложения для Android, которое отправляет и получает SMS-сообщения и синхронизируется с веб-сервером.(Я опишу приложение позже)

Сначала я попытался написать приложение с SL4A и python, но в нем было много ошибок (например, отправка длинных SMS-сообщений приводила к исключению NullPointerException!)

Фреймворк Android действительно сложный (по крайней мере, для меня).У вас есть Activities, Services, Receiver s, AsyncTask, Intent и так далее.Я сейчас в замешательстве и не знаю, как решить эту проблему.

Проблема

Существует веб-сервер и мобильныйтелефон .

Веб-сервер знает всю логику.Он знает, какие SMS-сообщения следует отправлять и что делать, если мобильный телефон получает сообщение.Таким образом, мобильный телефон связывается с сервером через HTTP.

Отправка сообщений

Телефон должен получать информацию о том, какие сообщения он должен отправлять каждые 30 секунд.

  • Еслиесли существуют неотправленные сообщения, сервер ответит объектом JSON.
  • Мобильный телефон отправит каждое сообщение и сообщит серверу, было ли сообщение успешно отправлено.
  • Также приятноиметь журнал того, что происходит, (какие сообщения были отправлены, какие ответы получил телефон от сервера) на элементе интерфейса телефона.

Получение сообщений

Когда телефон получает SMS-сообщение:

  • Это должно сообщить серверу
  • Это должно показать журнал на экране

Вопрос

Можете ли вы предложить хорошую архитектуру для этой проблемы?

Должен ли я создать Service с?

Должен ли я создать AsyncTask с?

...

Ответы [ 2 ]

1 голос
/ 09 января 2012

Периодические запросы к веб-серверу лучше всего обслуживать с широковещательным приемником / периодическими аварийными сигналами. (30 секунд - это нормально, если у вас есть источник питания, в противном случае рассмотрите более длительные обновления)

Для получения SMS вы также можете использовать широковещательный приемник (так как система будет передавать намерения при входящем SMS-сообщении)

Общее состояние может храниться в каком-то одноэлементном java-объекте и учитывать постоянное хранение состояния (запишите, так как ваше приложение может быть в любой момент уничтожено ОС)

Записать, что происходит, либо с помощью стандартных средств ведения журналов, и некоторые действия, чтобы представить пользователю текущее состояние)

0 голосов
/ 09 января 2012

Всегда трудно ответить, «какая архитектура лучше», но здесь все сказано.

Функциональность SMS / сервера звучит как работа для службы, поскольку она долго работает.

Возможно, вы также закодируете действие или набор действий для настройки и / или мониторинга службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...