问题:Anko doAsync在应用程序首次启动时未触发。
解决方法:
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
// 初始化其他操作
// ...
// 使用Anko库的doAsync执行异步操作
doAsync {
// 执行耗时操作
// ...
// 在UI线程更新UI
uiThread {
// 更新UI
// ...
}
}
}
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 使用Anko库的doAsync执行异步操作
doAsync {
// 执行耗时操作
// ...
// 在UI线程更新UI
uiThread {
// 更新UI
// ...
}
}
}
}
确保在MainActivity的onCreate方法中正确地使用doAsync。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 创建新线程执行异步操作
Thread {
// 执行耗时操作
// ...
// 在UI线程更新UI
runOnUiThread {
// 更新UI
// ...
}
}.start()
}
}
在这种情况下,你需要手动创建一个新的线程并在其中执行异步操作,并在UI线程中更新UI。
上一篇:Anko - 自定义警报不显示