在创建 activity Android 之前启动协程

Launch coroutine before create the activity Android

我需要在渲染 activity

之前完成一项工作

setContentView

这个例子是否正确,如果不正确,在这种情况下午餐协程的最佳方式是什么

 override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
    lifecycleScope.launchWhenCreated {
        if (dataStoreRepository.getLanguage() == ARABIC)
            window.decorView.layoutDirection = View.LAYOUT_DIRECTION_RTL
        else
            window.decorView.layoutDirection = View.LAYOUT_DIRECTION_LTR
    }
    super.onCreate(savedInstanceState, persistentState)
}

这不是执行此操作的最佳位置,因为您需要阻塞主线程并且它可能会导致一些丢帧(尤其是在较慢的设备上)。

更好的地方:

  • 在应用程序 class 中,在创建任何活动之前(将布局方向存储在可以轻松访问的地方...共享首选项等)。
  • 在 activity 中立即进行这一(如果有的话)。

在这两种情况下,您最好显示进度指示器并锁定 UI 以避免丢帧。