Почему initialData () Realm никогда не вызывается при настройке конфигурации? - PullRequest
0 голосов
/ 25 февраля 2019

Во-первых, я хотел бы спросить вас, если вы считаете, что этот вопрос заслуживает -1, будьте честны и, пожалуйста, объясните почему.

Это код для класса приложения:

class WeatherApp: Application() {
    override fun onCreate() {
        super.onCreate()    
        Realm.init(this)
        Realm.setDefaultConfiguration(
            RealmConfiguration.Builder()
                .deleteRealmIfMigrationNeeded()
                .initialData(DatabaseInitTransaction(applicationContext))
                .build()
        )

    }
}

Это класс транзакции:

class DatabaseInitTransaction(private val applicationContext: Context): Realm.Transaction {

    override fun execute(realm: Realm) {
        Log.d("DatabaseInitTransaction", "execute called.")
        val cityDao = CityDao(realm)
        realm.deleteAll()
        var stream :InputStream? = null
        try {
            stream = applicationContext.assets.open("city.list.json")
            cityDao.createAllFromJson(CityEntity::class.java, stream)
        } catch (thr: Throwable) {

        } finally {
            stream?.close()
        }
    }
}

Итак, при холодном запуске метод execute() из DatabaseInitTransaction класса никогда не вызывается.Я не мог понять, почему, пожалуйста, помогите!

1 Ответ

0 голосов
/ 25 февраля 2019

Сначала вы должны проверить, записано ли ваше имя класса Custom Applicatiom в файле манифеста.

в

<Application>

с именем класса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...