Я использую 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.