Данные в реальном времени из базы данных Sqlite через комнату за пределами действия / фрагмента в соответствии с моделью MVVM

Я слежу за моделью 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);}
  }

см. документацию по API android.arch.persistence.room.InvalidationTracker

pskink 20.12.2018 10:29

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

Sukesh Saxena 20.12.2018 11:12

InvalidationTracker.Observer (String [] tables): Допустим, имя таблицы - книги. Где мне нужно определить этот метод? Это в Дао? и как им пользоваться?

Sukesh Saxena 20.12.2018 11:18

Я читал эту строку много раз, но не понимаю, куда мне поместить метод addObserver. В настоящее время в активности используется наблюдение только для наблюдения за LiveData. Прошу вас рассказать, как это реализовать.

Sukesh Saxena 20.12.2018 11:27

Я хочу добавить функцию doInBackground of Asynch для получения последней информации в таблице, а затем применить эти параметры для фильтрации записей. Получение ошибки «Не удалось разрешить метод». Отсутствует правильный способ выразить это. RGDS

Sukesh Saxena 20.12.2018 11:36

Попросить клиента ввести параметры фильтра и сохранить его в базе данных Room. Получение этой информации из этой таблицы, чтобы то же самое можно было применить к списку книг для фильтрации результата. Наблюдение поможет мне добавить изменения в фильтр, чтобы отразить последние параметры фильтрации. Надеюсь, это понятно. Спасибо

Sukesh Saxena 20.12.2018 11:52

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

pskink 20.12.2018 11:57

Я просто принимаю данные клиентов для фильтрации бухгалтерских записей. Сохранение этого параметра фильтра в базе данных Room, его получение и применение к списку книг для фильтрации книг на основе требований пользователя. Не могли бы вы подсказать мне, как реализовать addobserver. Буду признателен, если вы поместите для него какой-нибудь код, чтобы я мог понять, как его применять.

Sukesh Saxena 20.12.2018 12:02

@pskink Invalidation Tracker дает список таблиц, которые обновляются по запросу. Он не сообщает, почему и что изменилось. Я хочу получить измененные данные из таблицы. Кто угодно может предоставить свое предложение.

Sukesh Saxena 21.12.2018 02:33

это невозможно

pskink 21.12.2018 07:38
0
10
279
0

Другие вопросы по теме