Android 如何在构建过程中针对特定方面和特定行禁用代码优化以正确运行代码?

Android 如何在构建过程中针对特定方面和特定行禁用代码优化以正确运行代码?,android,kotlin,Android,Kotlin,我的代码实际上如下所示: setTheme() setContentView() view.setxyz(verytimeintensivefunction()) 我想在setTheme()之前执行时间密集型函数,以便在执行期间显示初始屏幕。所以我做了这个: var x = verytimeintensivefunction() setTheme() setContentView() view.setxyz(x) 然后,我调试了应用程序,并在setContentView()上设置了一个断点,

我的代码实际上如下所示:

setTheme()
setContentView()
view.setxyz(verytimeintensivefunction())
我想在setTheme()之前执行时间密集型函数,以便在执行期间显示初始屏幕。所以我做了这个:

var x = verytimeintensivefunction()
setTheme()
setContentView()
view.setxyz(x)

然后,我调试了应用程序,并在setContentView()上设置了一个断点,以便在任务完成执行后检入探查器。并且执行是在setContentView()之后完成的。因此,我认为在构建过程中,代码将被简化。那么,当启动屏幕显示时,如何执行该功能呢?

使用协同程序并重试一次

GlobalScope.launh(Dispathers.Main){
var x = verytimeintensivefunction()
setTheme()
setContentView()
view.setxyz(x)
}

这基本上是在主线程中按顺序执行代码。如果不起作用,请详细解释。

我试过,但不起作用。这一切都和以前一样,除了我在setContentView()之后执行setTheme()时遇到的布局问题之外。setTheme()将启动屏幕主题更改为my AppTheme,my verytimeintensivefunction()正在下载一些网站并从中保存一些信息。您是说要在
setTheme
之前运行函数,并且在执行下一行之前需要完成任务吗?这种情况应该已经发生了-如果在任务完成之前转到
setTheme
setContentView
,那么您的任务是异步运行的,而不是阻塞主线程-就像您正在调用一个运行在主线程之外的网络库(这很好,因为阻塞主线程非常糟糕)。我觉得您可能想让您的活动显示初始屏幕,并在通过回调获取数据后更新显示