确保协程返回的值覆盖 android kotlin 中的默认值

Make sure value returned from coroutine overwrites default value in android kotlin

我想确保从数据库中查询的值总是晚于默认值。

例如

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
    }

} 

目前这段代码没有问题。但是协程可能 return 值比默认值快吗?我的意思是,数据库值首先进入查看,默认值覆盖它。如果它可能发生,我该如何预防?谢谢。

当在文本视图上设置默认值时,执行数据库查询的协程甚至没有启动,因此它可以在此之前完成并写入一个会被默认值覆盖的值没有风险