• 异步数据的接收——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()
    }
  • 相关阅读:
    最终一致性解决实例
    分布式事务一致性方案
    分布式事务
    OSX
    JAVA
    Eclipse
    Activiti
    CentOS
    用Visual Studio 2015 编写 MASM 汇编程序(二)从头开发一个Win32汇编程序
    Oracle
  • 原文地址:https://www.cnblogs.com/luofangli/p/14959003.html
Copyright © 2020-2023  润新知