Intereting Posts
Использование задач ant от gradle-script-kotlin Анимация вложенного фрагмента в фрагменте ViewPager запускается перед рендерингом Как сохранить имена параметров для отладки? Kotlin JS – преобразование строк в число? как вычислить проекционную точку в котлин? JaVers обнаруживает изменения в childs, если изменяется свойство simple в корневом объекте jvm сравнение String с StringBuffer.reverse () всегда не выполняется Kotlinx вводит представление из неправильного расположения воспроизведение любого встроенного видео в веб-браузере в Android с намерением Облицовка проблем с реализацией Rx Java с архитектурой потока в kotlin android Какой язык используется для шаблонов строк kotlin? Кинжал вводят на суперкласс и подкласс Kotlin 0.11.91 Unresolved Reference: inv () Класс Android не найден Intermitten и распространяется через код Kotlin не будет создавать файлы классов Ошибка: не удалось найти или загрузить основной класс в intelliJ IDE

Realm executeTransactionAsync не записывает данные в DB

Я использую realm db в своем проекте. Я хочу написать некоторые данные из JSON в папке с моими активами, когда приложение впервые появится. Я использую Котлин. Я начинаю свое царство:

Realm.init(this) val config = RealmConfiguration.Builder() .rxFactory(RealmObservableFactory()) .build() Realm.setDefaultConfiguration(config) 

Чем я хочу, как написать aync-write List<Data> в мой db:

 val realm = Realm.getDefaultInstance() realm.executeTransactionAsync { realm.copyToRealm(skillsList) } realm.close() 

Но мой мир db пуст. После realm.copyToRealm(skillsList) меня есть пустая таблица. Что не так? Я проверяю стол со Стето, его действительно пусто. Как я могу это исправить?

У меня была ошибка:

 Realm objects can only be accessed on the thread they were created 

Я исправляю это с помощью:

  Thread({ Realm.getDefaultInstance().use { val skillsList = ArrayList<Skill>() val inputSkills = assets.open("skills.json") val size = inputSkills.available() val buffer = ByteArray(size) inputSkills.read(buffer) inputSkills.close() val json: JSONObject = JSONObject(String(buffer)) val skillsArray = json.getJSONArray("skills") (0..skillsArray.length() - 1) .map { skillsArray.getJSONObject(it) } .forEach { skillsList.add(Skill(skillsList.size.toLong(), it.getString("title"), it.getString("subtitle"), it.getInt("rating"))) } it.beginTransaction() it.copyToRealm(skillsList) it.commitTransaction() Log.d("REALM","LOOOOG") } }).start()