Во-первых, я хотел бы спросить вас, если вы считаете, что этот вопрос заслуживает -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
класса никогда не вызывается.Я не мог понять, почему, пожалуйста, помогите!