Как получить контекст для базы данных Room и правильно ее инициализировать в Android Compose?Android

Форум для тех, кто программирует под Android
Anonymous
Как получить контекст для базы данных Room и правильно ее инициализировать в Android Compose?

Сообщение Anonymous »

Я использую базу данных Room в приложении Android, для ее создания необходим экземпляр класса context. Я хочу получить доступ к базе данных в ViewModel, но контекст можно получить только в компонуемых объектах или действиях, поэтому я создаю ViewModel в MainActivity и передаю Application (

Код: Выделить всё

Application
наследует класс Context) для инициализации БД. Затем я передаю ViewModel компоненту верхнего уровня.
Это работает нормально, но в руководствах Android этого следует избегать:

Настоятельно рекомендуется:
ViewModels не должны содержать ссылки на какой-либо тип, связанный с жизненным циклом.
Не передавайте Activity, Fragment, Context или Resources в качестве зависимости.
Если для чего-то нужен контекст в ViewModel, вам следует тщательно
проверить, находится ли он на правильном уровне.

и< /p>

Рекомендуется:
Используйте класс ViewModel, а не AndroidViewModel. Класс Application не следует использовать в ViewModel. Вместо этого переместите зависимость в пользовательский интерфейс или на уровень данных.

Куда тогда мне следует переместить зависимость от базы данных?

Подробнее здесь: https://stackoverflow.com/questions/791 ... droid-comp

Вернуться в «Android»