zoukankan      html  css  js  c++  java
  • 异步数据的接收——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()
    }
  • 相关阅读:
    GDI+常用操作、入门解析
    实用SQL语句大全
    SQL语句全解析
    ASP.NET MVC 浅析
    C#版文件分割器
    转一个orbitpanel GIS
    怎么给listbox 的item 添加动画1? GIS
    怎么给listbox 的item 添加动画? GIS
    关于查找可视树的一点问题 GIS
    判断gridview 滑动到最右端 GIS
  • 原文地址:https://www.cnblogs.com/luofangli/p/14959003.html
Copyright © 2011-2022 走看看