异步数据的接收——handler

异步线程之间的数据的传递用handler(接收数据,(接收从其他线程传过来的数据)),
message(传递数据(从线程传递数据到主线程中))
例子:
 val content:MutableLiveData<String> = MutableLiveData()
 private val handler = object :Handler(){
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
when(msg.what){
//msg.what是判断这个线程是哪个线程
1->{
//通过obj来获取数据
val content1 =msg.obj.toString()
}
}
}
}

fun loadData(){
/*
从网络下载数据一般是没有返回值的,下载数据的过程需要时间,会另开一个线程,
这样就不会阻挡到主线程的运行
*/
//线程之间的数据的传递用handler(接收数据,(接收从其他线程传过来的数据)),
// message(传递数据(从线程传递数据到主线程中))
//开启一个线程
Thread(Runnable {
//让这个线程睡10秒钟
Thread.sleep(10000)
val result = "下载数据"
//通过message传递数据
val message = Message()
//对这个线程的一个标记,表示这个线程的标记为1
message.what = 1
//obj是对线程中所得到的数据的传递
message.obj = result
//通过handler.sendMessage()发送数据
handler.sendMessage(message)
}).start()
}
posted @ 2021-07-01 15:30  哎睡的懒洋洋  阅读(199)  评论(0编辑  收藏  举报