Me gustaría asegurarme de que el valor consultado de la base de datos siempre sea posterior al valor predeterminado.
Por ejemplo
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 eg12:30 val newTime = itemList.dbTimeStr //overwrite default value with database query result binding.timeView.setText(newTime) } return binding.root } }Actualmente, este código no tiene ningún problema. ¿Pero es posible que la rutina devuelva el valor más rápido que el valor predeterminado? Quiero decir, el valor de la base de datos se ve primero y el valor predeterminado lo sobrescribe. Si es posible que suceda, ¿cómo puedo prevenirlo? Gracias.
La corrutina que realiza la consulta de base de datos ni siquiera se inicia cuando el valor predeterminado se establece en la vista de texto, por lo que no hay riesgo de que finalice antes de eso y escriba un valor que se sobrescribiría por defecto.