[英]Saving data with coroutines during onPause() (avoiding ViewModel cancellation and global coroutine scope)
在 onPause() 期間保存一些數據(到房間)時
this.viewModelScope.launch(Dispatchers.IO){ repo.updateNote(id, text) }
我注意到大多數情況下都不會保存,因為如果用戶離開片段,viewModelScope 會被取消。
由於使用某種類型的全局 scope 似乎因各種原因不受歡迎,是否有一種優雅的方法可以在不將其綁定到 ViewModelScope 的情況下對這個 db-save 進行“一勞永逸”?
我可以為此創建一個服務,但感覺就像一個丑陋的黑客,我也可以使用 runBlocking ,它可以工作,但可能會掛起片段,我正在尋找一種優雅的方式來使用協程來做到這一點。
即發即棄正是GlobalScope
的用途:不應該取消的事情,所以就使用它。
GlobalScope.launch(Dispatchers.IO){ repo.updateNote(id, text) }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.