目前我有这个代码块。
如果用户停留在同一个 Fragment 上,我会apiGetObject从 API获取并且我想用 来更新它resetTime - current(请注意,该值将始终为 3 分钟)。
此代码将延迟该needReload.value = true时间。
GlobalScope.launch(Dispatchers.Main) {
apiGetObject.value?.resetTime?.let {
if (it - System.currentTimeMillis() > 0) {
delay(it - System.currentTimeMillis())
}
}
needReload.value = true
}
Run Code Online (Sandbox Code Playgroud)
现在我检索每个对象onResume以刷新数据(这是必须的)。因此,如果在 3 分钟窗口下恢复 Fragment,则会启动另一个协程。
=> 这使得数据
我想要的是:
我想如果有一个新的协程启动然后前一个被取消/销毁。有没有办法做到这一点(欢迎这个协程的其他解决方案)
注意:我将 MVVM 与 LiveData 一起使用,我得到了apiGetObjectRetrofit 和 RX