2016-08-17 2 views
0

Я хочу написать обратный вызов из базы данных sqlite для работы в Android. В настоящее время я вставляю некоторые данные из webservice в db, а затем устанавливаю его в listview. Я запускаю службу в фоновом режиме, которая будет постоянно проверять наличие новых данных. Если есть новые данные, он обновит базу данных. Моя проблема заключается в том, как определить обратный вызов onupdate из sqlite для активности.Как определить обратные вызовы из SQLITE для Android Активность

Любая помощь будет оценена по достоинству.

+1

читает о 'ContentProvider' /' ContentResolver' – pskink

ответ

0

Вы должны иметь возможность добиться результата с помощью шаблона наблюдателя. В вашей деятельности будет реализован пользовательский интерфейс, такой как RefreshableOnDBUpdateTrigger , в котором вы будете повторно загружать данные из БД с использованием стандартных механизмов запросов БД.
В вашем классе обновления DB вы можете вызвать метод RefreshableOnDBUpdateTrigger.update(), который по существу является методом вашего экземпляра активности, который извлекает обновленные данные из БД.
Обратитесь к шаблону наблюдателя для деталей реализации.

+1

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

0

Для этого потребуются пользовательские функции, которые не поддерживаются базой данных Android.

Вы должны вызывать эти обратные вызовы явно в коде доступа к базе данных.

0

Другим вариантом обратных вызовов интерфейса будет использование Event Bus. Код DB извлекает данные, а затем отправляет событие с данными. Любые зарегистрированные классы получат событие.