我正在使用Kotlin在Android应用程序中使用Room持久库。在少数情况下,我希望在房间完成交易后得到回调。是的,我们可以使用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中有更好的方法? 在上面的函数中,我传递了一个lambda函数来获取回调,而不是使用LiveData观察更改。