我想確保來自資料庫的查詢值總是晚于默認值。
例如
class SetTimeFragment : Fragment(){
private lateinit var binding: FragmentSetTimeBinding
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
binding = FragmentSetTimeBinding.inflate(layoutInflater, container, false)
val dbId = 3
val defaultTime = LocalTime.now().toString()
//Set default value
binding.timeView.setText(defaultTime)
lifecycleScope.launchWhenCreated {
val itemList = withContext(Dispatchers.IO) {
//This is Database query
ObjectBox.store.boxFor(Data::class.java)[dbId]
}
// string from database e.g.12:30
val newTime = itemList.dbTimeStr
//overwrite default value with database query result
binding.timeView.setText(newTime)
}
return binding.root
}
}
目前,此代碼沒有問題。但是協程是否可能比默認值更快地回傳值?我的意思是,首先查看資料庫值,然后默認值覆寫它。如果可能發生,我該如何預防?謝謝你。
uj5u.com熱心網友回復:
當在文本視圖上設定默認值時,甚至不會啟動執行 DB 查詢的協程,因此它沒有風險可以在此之前完成并寫入一個將被默認值覆寫的值
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/409894.html
標籤:
上一篇:為什么.update("field","value")不起作用?
下一篇:Ktor-以編程方式創建多個子域
