Обновить модель памяти из Сервиса - PullRequest
0 голосов
/ 25 июля 2011

Я планирую написать IntentService для загрузки новых пакетов (новые элементы для приложения).Моя единственная проблема заключается в том, что, когда я передаю информацию об окончании загрузок, мне нужно обновить модель памяти, если приложение запущено.Если он не запущен, ничего не нужно делать, так как приложение при запуске создаст модель памяти из БД.Что касается производительности, пользовательский интерфейс работает из памяти, а не из базы данных.Любая идея, как мне подходить, или я совершенно не на том пути?

РЕДАКТИРОВАТЬ: Для ясности: допустим, у меня есть MyIntentService, который вставляет новые строки в мою БД, а затем запускает BroadcastIntent,Получено MyBroadcastReceiver.Теперь проблема, с которой я сталкиваюсь, заключается в том, что экземпляр MyBroadcastReceiver должен как-то уведомить класс Model, который является одиночным.Проблема заключается в том, что этот экземпляр Model (singleton) должен быть доступен только в том случае, если мое приложение работает, так как оно используется только пользовательским интерфейсом (использование только БД может привести к замедлению работы).Нет необходимости уведомлять мой экземпляр Model, если нет интерфейса для его использования.Я не могу сделать мою Модель трансляцией BroadcastReceiver, поскольку они инициируются в любое время, и они также не могут быть одноэлементными (насколько я знаю).

Ответы [ 2 ]

0 голосов
/ 26 июля 2011

Я решил эту проблему, зарегистрировав UI в качестве приемника вещания и обновив модель по мере необходимости. В моем решении, если пользовательский интерфейс существует, модель всегда будет создаваться.

Другое решение состоит в том, чтобы проверить, создана ли Модель и работает ли она только в этом случае.

0 голосов
/ 25 июля 2011

Сложно ответить и сказать что-то, имея только ваши слова без кода.Может сделать дополнительную отдельную часть вашего проекта, которая инициализирует / создаст вашу «модель памяти» из БД, и эта часть должна быть независимой, так что вы можете использовать ее где угодно в любое время, во время запуска вашей деятельности / приложения или при получении трансляции.

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