class MyThread : Thread() { override fun run() { // 编写具体的逻辑 } } 启动这个线程只需要创建MyThread的实例,然后调用它的start()方法即可,这样run()方法中的代码就会在子线程当中运行了,如下所示: MyThread().start()
在子线程中更新UI Android的UI是线程不安全的,也就是说,如果想要更新应用程序里的UI元素,必须在主线程中进行,否则就会出现异常。对于这种情况,Android提供了一套异步消息处理机制,完美地解决了在子线程中进行UI操作的问题。 class MainActivity : AppCompatActivity() { val updateText = 1 val handler = object : Handler() { override fun handleMessage(msg: Message) { // 在这里可以进行UI操作 when (msg.what) { updateText -> textView.text = "Nice to meet you" } } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) changeTextBtn.setOnClickListener { thread { val msg = Message() msg.what = updateText handler.sendMessage(msg) // 将Message对象发送出去 } } } }