Как обработать изменение таблицы SQL в Android - PullRequest
0 голосов
/ 11 марта 2012

Я пишу Android-приложение, состоящее из графического интерфейса и приемника вещания. Получатель широковещательной рассылки может добавить новую строку в таблицу SQLite, которая обычно используется в пользовательском интерфейсе.

Проблема: когда часть пользовательского интерфейса работает (на переднем плане), широковещательный получатель может добавлять новые строки в SQL, но эта строка не будет отображаться в графическом интерфейсе, пока не будет вызван мой метод refresh (). Однако я не имею ни малейшего представления о том, как проинформировать пользовательский интерфейс переднего плана об этой необходимости обновления с помощью метода фонового широковещательного приемника OnReceive ().

У меня есть некоторый опыт в разработке программного обеспечения для Win / * NIX и я пытался найти что-то похожее на события для Android, но безуспешно.

Я иду не в ту сторону?

Ответы [ 2 ]

0 голосов
/ 11 марта 2012

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

Как использовать CursorLoader

Вам нужно будет установить компонент messages_uri.

cursor.setNotificationUri(context.getContentResolver(),your_notification_uri)

Когда этот набор данных изменяется / обновляется вашим BraodcastReceiver, в Broadcast Receiver, отправляющем уведомление на вышеуказанный URL-адрес уведомления, данные в пользовательском интерфейсе будут обновляться соответственно.*

0 голосов
/ 11 марта 2012

Зачем использовать вещательный приемник?Получает ли таблица SQLite данные из других приложений или удаленных служб?Если это так, вам действительно следует использовать поставщика контента, который является гораздо более простым и надежным способом обработки баз данных в фоновом режиме.

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

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