切换线程

  • 可以在任何线程发送事件
  • 可以在任何线程接收事件, 回调永远在主线程


使用协程函数可以切换回调的线程(也被称为调度器)

receiveEvent<String> {
    // 当前主线程
    tv.text = it

    launch(Dispatchers.IO) {
        // 执行异步任务
    }
}

具备返回值回调的切换

receiveEvent<String> {
    // 当前主线程
    tv.text = withContext(Dispatchers.IO){
        // 切换到IO线程, 返回结果到主线程
        "新的姓名"
    }
}