理想情况下,在启动画面上加载大量数据并不是一个好习惯,主要是因为它对用户体验的影响。
不过,在阅读有关迁移到 Android 12 启动画面的文档之后,我想您可以实施此解决方案来实现这一目标。
// Create a new event for the activity.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Set the layout for the content view.
setContentView(R.layout.main_activity)
// Set up an OnPreDrawListener to the root view.
val content: View = findViewById(android.R.id.content)
content.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
// Check if the initial data is ready.
return if (viewModel.isReady) {
// The content is ready; start drawing.
content.viewTreeObserver.removeOnPreDrawListener(this)
true
} else {
// The content is not ready; suspend.
false
}
}
}
)
}
该解决方案基本上会延迟应用程序的第一帧,因此允许您加载所需的数据并允许用户在完成后移过启动画面。
希望这会有所帮助,如果您需要更多信息,请告诉我。