room: Как получить обратный вызов при успешном / неудачном завершении транзакции Room в Android Kotlin? - PullRequest
0 голосов
/ 01 декабря 2018

Я использую Room persistent lib для своего приложения для Android с Kotlin.Есть несколько случаев, когда я хотел бы получить обратный вызов, когда комната заканчивает транзакцию.Да, мы можем использовать LiveData, и я уже использую его, но есть несколько редких случаев, когда наше приложение не хочет наблюдать за изменениями, а получает одноразовый обратный вызов для дальнейшей обработки.Например, я использую следующую настройку:

fun insertNewData(oldList: List<String>, finalList: List<String>, callback: () -> Unit) {
    launch(Dispatchers.IO) {
        async {
            //1. Call function to delete old relations
            // Delete query on JoinTable

            //2.Call function to get IDs for new data
            // Select or insert query on TableOne

            //3. Call function to assign new relations
            // Insert query on JoinTable
        }.await()

        callback()
    }
}

Так это хорошая установка или есть лучшие способы в Kotlin?В вышеупомянутой функции я передаю лямбда-функцию для получения обратного вызова вместо наблюдения за изменениями с использованием LiveData.

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