使用
在onPause()期间保存一些数据(到房间)this.viewModelScope.launch(Dispatchers.IO){ repo.updateNote(id,文字) }
我注意到大多数情况下不会保存,因为如果用户离开该片段,则会取消viewModelScope。
由于出于各种原因,人们似乎不赞成使用某种类型的全局范围,是否有一种优雅的方法来触发并忘记该数据库保存而不将其绑定到ViewModelScope上?
我可以为此创建一个服务,但是感觉就像是一个丑陋的hack,我也可以使用可以运行的runBlocking,但是可能会挂起片段,我正在寻找一种使用协程来完成此操作的优雅方法。
答案 0 :(得分:0)
解雇就是GlobalScope
的目的:不应该取消的事情,所以就用吧。
GlobalScope.launch(Dispatchers.IO){ repo.updateNote(id, text) }