最好的使用方法是什么coroutines
使用 LiveData 从数据库中选择一些数据Room
.
这是 My Dao 课程,暂停选择
@Dao
interface UserDao {
@Query("SELECT * from user_table WHERE id =:id")
suspend fun getUser(id: Long): User
}
在视图模型类内部我向用户加载viewModelScope
.
获取用户实体的方法是否正确?
fun load(userId: Long, block: (User?) -> Unit) = viewModelScope.launch {
block(dao.getUser(userId))
}
根据开发者 安卓 https://developer.android.com/topic/libraries/architecture/coroutines提及
val user: LiveData<User> = liveData {
val data = database.loadUser() // loadUser is a suspend function.
emit(data)
}
这段代码不起作用
您的 Room 必须返回 LiveData。
改用:
@Dao
interface UserDao {
@Query("SELECT * from user_table WHERE id =:id")
fun getUser(id: Long): LiveData<User>
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)