Android 中 kotlin 如何从子线程进入主线程
在 Android 中,可以使用以下几种方式从子线程进入主线程:
- 使用 Handler
Handler 可以将消息发送到主线程的消息队列中,从而在主线程中执行相应的操作。以下是使用 Handler 从子线程进入主线程的示例代码:
val handler = Handler(Looper.getMainLooper())
Thread(Runnable {
// 在子线程中执行耗时操作
// ...
// 发送消息到主线程
handler.post {
// 在主线程中更新 UI
// ...
}
}).start()
- 使用 runOnUiThread
Activity 类中提供了一个 runOnUiThread 方法,可以在子线程中直接调用该方法,从而在主线程中执行相应的操作。以下是使用 runOnUiThread 从子线程进入主线程的示例代码:
Thread(Runnable {
// 在子线程中执行耗时操作
// ...
// 在主线程中更新 UI
runOnUiThread {
// ...
}
}).start()
- 使用 AsyncTask
AsyncTask 是 Android 提供的一个异步任务框架,可以方便地在子线程中执行耗时操作,并在主线程中更新 UI。以下是使用 AsyncTask 从子线程进入主线程的示例代码:
class MyTask : AsyncTask<Void, Void, Void>() {
override fun doInBackground(vararg params: Void?): Void? {
// 在子线程中执行耗时操作
// ...
return null
}
override fun onPostExecute(result: Void?) {
// 在主线程中更新 UI
// ...
}
}
MyTask().execute()
原文地址: https://www.cveoy.top/t/topic/b1RK 著作权归作者所有。请勿转载和采集!