Следуйте этому руководству для Room, ViewModel и LiveData.
Комната - это абстракция базы данных SQL, которая может предоставлять свои данные через LiveData.ViewModel - это класс, который содержит данные для пользовательского интерфейса и сохраняет изменения конфигурации.LiveData - это наблюдаемый контейнер для данных, который знает о жизненном цикле Android, поэтому вам не нужно управлять им в обратных вызовах жизненного цикла.
По сути, вы создаете базу данных Room, а затем открываете объекты LiveData для ViewModel.ViewModel, в свою очередь, предоставляет объектам LiveData фрагмент / действие.Фрагмент или действие наблюдает за LiveData ViewModel, прикрепляя Observer.Observer определяет, как фрагмент / действие реагирует на изменения в данных.
Если вы предпочитаете RXJava, вы можете вместо этого следовать этому руководству .По сути, это то же самое, но вместо предоставления данных с помощью LiveData вы используете реактивные потоки.