Разработка приложений на базе компонентов Android: как мне представить эту модель? - PullRequest
0 голосов
/ 19 ноября 2010

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

Вот краткое описание приложения:

  • Цель Приложения - предоставить Пользователю возможность создавать «События», которые будут храниться локально на Устройстве и отправляться по сети.

  • Пользователь может взаимодействовать с приложением с помощью 2 действий: «NewEventActivity», которая позволяет ему создавать новые события, и «RegistryActivity», позволяющее просматривать ранее созданные события.

  • Локальное хранилище должно обрабатываться базой данных SQLite

  • Событие должно быть отправлено в определенном двоичном формате.

  • Другие приложения должны иметь возможность использовать компонент Отправка для форматирования и отправки сообщений других типов в том же формате.

Этот рисунок представляет, как я думал об организации компонентов. Рамки представляют компоненты, а стрелки представляют взаимодействия без этих компонентов. alt text

Вот мои вопросы:

  • Эта модель выглядит нормально? Можете ли вы увидеть что-то, что можно улучшить?
  • Должен ли мой SQLiteHelper быть ContentProvider или ContentResolver?
  • Должен ли я создать один класс BroadcastReceiver для каждого типа сигнала или один большой BroadcastReceiver, который обрабатывает все виды сигналов, которые может обрабатывать мое приложение?

Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2010

Несколько предложений по упрощению конструкции:

  • Если EventWriter и EventReader взаимодействуют только с действием из-за прямого взаимодействия с пользователем, они не обязательно должны быть BroadcastReceivers. На самом деле, они могут быть просто методами действий.

  • В зависимости от того, как вы решите, когда отправлять События, вы можете также преобразовать MessageFormatter и Sender в IntentService, который будет периодически опрашивать поставщика контента и выбирать, какие части данных отправлять. Вы можете запланировать IntentService с помощью будильника.

Должен ли мой SQLiteHelper быть ContentProvider или ContentResolver?

Он должен реализовывать ContentProvider (поскольку он обеспечивает доступ к данным).

Должен ли я создать один BroadcastReceiver класс по типу сигнала, или я должен создать один большой BroadcastReceiver, который обрабатывает все виды сигналов моего приложение может обрабатывать?

Я склоняюсь к одному приемнику для каждого типа сигнала, но это действительно просто предпочтение.

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