android – Kotlin-coroutines的房间观察数据库的变化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android – Kotlin-coroutines的房间观察数据库的变化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1370字,纯文字阅读大概需要2分钟。
内容图文
![android – Kotlin-coroutines的房间观察数据库的变化](/upload/InfoBanner/zyjiaocheng/909/89ab470d8cc9412fa4d8160af9f1c565.jpg)
因此,我最近开始使用协同程序进行实验,我从Rxjava2切换到协同程序,我还没有掌握它但仍然,我遇到了一个需要观察我的数据库更改并更新对应的UI的情况.
RxJava过去常常为我提供Flowables,Completeable等,我可以观察到Db的变化.
abstract fun insert(data: SomeData): Long
@Query("SELECT * FROM somedata_table")
abstract fun getData(): Flowable<List<SomeData>>
所以现在这里我曾经订阅了getData并且总是习惯于观察变化
现在输入coroutines,我使用带有延迟结果的暂停函数来返回我的响应
@Insert(onConflict = OnConflictStrategy.IGNORE)
abstract fun insert(data: SomeData): Long
@Query("SELECT * FROM somedata_table")
abstract fun getData(): List<SomeData>
suspend fun getAllSomeData():Deferred<List<SomeData>>{
return GlobalScope.async (context= coroutineContext){
database.myDao().getData()
}
}
现在我无法听取更新,协程中的频道可能是正确的答案吗?但我不确定如何使用Room.
解决方法:
原版的:
您应该使用LiveData替换RxJava(Flowable,Single等 – > LiveData).它的工作方式与RxJava observables相同,只是它由google创建,专门设计为外部库的替代品.它是Architecture Components堆栈的一部分,与Room相同.
当谈到将Coroutines与Room集成时,目前似乎有no out-of-the-box solution provided和it is being worked on.你可能可以使用this article.
更新:
从2.1室(Alpha)开始,添加了对Kotlin Coroutines的支持.有关如何使用它的一些细节可以在this article找到.
注意:Room尚不支持频道,因为它们仍然是一个实验性功能.
祝好运 :)
内容总结
以上是互联网集市为您收集整理的android – Kotlin-coroutines的房间观察数据库的变化全部内容,希望文章能够帮你解决android – Kotlin-coroutines的房间观察数据库的变化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。