Intereting Posts
Ошибка Observable.combineLatest после обновления до RxJava 2.xx – не может выводиться тип Может ли кто-нибудь сказать мне, как работает компилятор kotlin? Какова его архитектура? Загрузка и установка APK с использованием волейбола Kotlin: какой формат использовать для документации? Как работать с картами в Котлине Дженкинс град строит неудачу из-за приложения: compileDebugKotlin Kotlin Упрощение булевых выражений Firebase неразрешенный супертип с Kotlin на Android Элемент предварительного ввода Kotlin Python vars () в Котлине Тесты Espresso на Android (написанные в Котлине) не могут видеть основные классы и пакеты Как создать синтаксис Kotlin DSL – DSL Kotlin Необычный сбой только на каком-то устройстве – асинхронные вызовы kotlin coroutines Можно ли определить значение по умолчанию для функции параметра? Как создать бесконечный интервал Наблюдаемый, который будет генерировать новый объект каждый временной интервал?

Android Room + шаблон Kotlin

в документации на Android Room говорится, что мы должны следовать шаблону проектирования singleton при создании экземпляра объекта AppDatabase.

Я думал об этом, и я хотел бы знать, рекомендуется ли его поместить класс AppDatabase в класс приложения. Или, если я смогу использовать Singleton Kotlin для этого.

Предположим, у меня есть DAO под названием CarroDAO и класс CarrosDatabase, который является RoomDatabase.

Можно ли создать класс DatabaseManager с использованием объекта Kotlin / singleton?

object DatabaseManager { private var dbInstance: CarrosDatabase init { val appContext = MyApplication.getInstance().applicationContext dbInstance = Room.databaseBuilder( appContext, CarrosDatabase::class.java, "mybd.sqlite") .build() } fun getCarroDAO(): CarroDAO { return dbInstance.carroDAO() } } 

Поэтому я могу получить класс DAO следующим образом:

 val dao = DatabaseManager.getCarroDAO()