在创建 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 以避免丢帧。
我需要在渲染 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 以避免丢帧。