База данных помещения не отображается в проводнике файлов устройства - PullRequest
0 голосов
/ 22 апреля 2020

Резюме: я проверил экземпляр базы данных, который не был нулевым. Тем не менее, база данных не была создана, глядя на Device File Explorer. Моя цель - создать базу данных, включающую таблицы, на которые я хотел бы посмотреть, чтобы убедиться, что она выглядит правильно, прежде чем я go продолжу работать над кодом.

Подробно: следующий код предназначен для создания экземпляра Room .databaseBuilder на основе 'parks_database'.

private lateinit var INSTANCE: ParksDatabase

fun getDatabase(context: Context): ParksDatabase {
    synchronized(ParksDatabase::class.java) {
        if (!::INSTANCE.isInitialized) {
            INSTANCE = Room.databaseBuilder(
                context.applicationContext,
                ParksDatabase::class.java,
                "parks_database"
            ).fallbackToDestructiveMigration().build()
            if(INSTANCE == null)
                Timber.d("INSTANCE is NULL")
            else
                Timber.d("INSTANCE is NOT NULL")
        }
    }

    return INSTANCE
}

На моем экране Logcat показано «INSTANCE is NOT NULL».

Вот код, который я написал для создания базы данных в ViewModel:

private val parksRepository = ParksRepository(getDatabase(application))

Вот код ParksRepository:

class ParksRepository(private val database: ParksDatabase) {
    val parks: LiveData<List<DomainPark>> = Transformations.map(database.parksDao.getParksWithAddresses()) 
    {
        it.asDomainModel()
    }

    init {
        Timber.d("Injection ParksRepository")
    }

    suspend fun refreshParks() {
        withContext(Dispatchers.IO) {
            Timber.d("refreshParks() is called")
            val parkList = ParksApi.retrofitService.getParks(ParksApiService.API_KEY)
            database.parksDao.insertAll(parkList.asDatabaseModel())
        }
    }
}

Я исследовал учебные пособия или веб-сайты. Я не уверен, что мне здесь не хватает для создания базы данных. Означает ли значение INSTANCE значения NOT null, что он должен был создать базу данных, даже если я не нахожу ее в Обозревателе файлов устройств (Да, я обновил sh проводник).

Спасибо за потраченное время!

...