Я слежу за моделью MVVM. Я хотел бы получать данные в реальном времени из базы данных SQLite через комнату (результаты будут доступны, как только данные в базе данных изменятся). С помощью LiveData мы можем получить результаты в Activity / Fragment. Обратный вызов также не подходит для этого типа требований, поскольку данные должны быть отправлены из базы данных. Есть ли способ попасть в какой-либо класс за пределами активности / фрагмента ?.
Заранее благодарим за вашу помощь.
РЕДАКТИРОВАТЬ
Ввод примера кода для лучшего понимания .. Есть ли способ наблюдать за таблицей базы данных комнаты, чтобы у нас всегда были самые свежие данные из таблицы?
Filter filter = mCustomerFilterDao.fetchcustomerSettings(settings);
// Want to add observe for filter table so that we have latest customer
//settings. This is my Query.
List<Book> booklist = new ArrayList<>();
for(Book book:bookrecords)
{
if (book.status == filter.status)
{booklist.add(book);}
}
Мои извинения не могу понять, чтобы применить их. Могу я попросить предоставить дополнительную информацию о том, как мне это реализовать. заранее спасибо
InvalidationTracker.Observer (String [] tables): Допустим, имя таблицы - книги. Где мне нужно определить этот метод? Это в Дао? и как им пользоваться?
Я читал эту строку много раз, но не понимаю, куда мне поместить метод addObserver. В настоящее время в активности используется наблюдение только для наблюдения за LiveData. Прошу вас рассказать, как это реализовать.
Я хочу добавить функцию doInBackground of Asynch для получения последней информации в таблице, а затем применить эти параметры для фильтрации записей. Получение ошибки «Не удалось разрешить метод». Отсутствует правильный способ выразить это. RGDS
Попросить клиента ввести параметры фильтра и сохранить его в базе данных Room. Получение этой информации из этой таблицы, чтобы то же самое можно было применить к списку книг для фильтрации результата. Наблюдение поможет мне добавить изменения в фильтр, чтобы отразить последние параметры фильтрации. Надеюсь, это понятно. Спасибо
нет, это не так - на самом деле я понятия не имею, что вы пытаетесь сделать - так что вам придется подождать кого-то другого ...
Я просто принимаю данные клиентов для фильтрации бухгалтерских записей. Сохранение этого параметра фильтра в базе данных Room, его получение и применение к списку книг для фильтрации книг на основе требований пользователя. Не могли бы вы подсказать мне, как реализовать addobserver. Буду признателен, если вы поместите для него какой-нибудь код, чтобы я мог понять, как его применять.
@pskink Invalidation Tracker дает список таблиц, которые обновляются по запросу. Он не сообщает, почему и что изменилось. Я хочу получить измененные данные из таблицы. Кто угодно может предоставить свое предложение.
это невозможно
см. документацию по API
android.arch.persistence.room.InvalidationTracker