• Android线程之间的通讯


      Android之中,只有主线程当中能修改UI 的值,WorkThread中不能修改。因此在WorkThrean中运行比较耗时的程序,即在WorkThread中获取数据,然后将数据发送的主线程,再修改UI。

      根据以上的思路来理解Android中个线程之间的通讯。

    1、新建个TestHandler类,继承至Handler,

      1)复写handlerMessage方法,来实现获取消息队列中的信息;

    //新建handler对象
    
    Handler handler = new TestHandler();
    
    //TestHandler类
    class TestHandler extends Handler{
           @Override
            public void handleMessage(Message msg) {
                
            }
    }

    2、WorkThread类

      1)继承至Thread;

      2)在这里面进行发送数据的程序;

      3)handler的obtainMessage方法可以获取到消息队列中的消息;

      4)handler的sendMessage方法:将数据发送到主线程;

    具体:

    class testThread extends Thread{
            @Override
            public void run() {
                try {
                     //WorkThread中要做的事情
                    Thread.sleep(2000);
                }
                catch (InterruptedException e){
                    e.printStackTrace();
                }
                finally{
                    //将消息发到主线程
                    String s = "test String";
                    Message msg = handler.obtainMessage();
                    msg.obj = s;
                   handler.sendMessage(msg);
               }
            }
        }

    3、编译之后实现的功能就是

      1)按键按下后,启动WorkThread线程;

      2)线程中处理、获取数据,再数据发送到主线程;

      3)主线程中获得数据,再修改UI;

    4、以后深入之后可以再WorkThread中获取网络数据,再发到主线程中,修改UI,从而显示给用户。

    5、刚学Android不久,各处描述可能有不妥之处,以后发现再回过头来修改。。。。。

  • 相关阅读:
    sqli-labs学习(less-5-less-7)
    sqli-labs学习(less-1-less-4)
    Dotspatial 要素重叠部分去除
    Dotspatial 要素重叠分析
    Dotspatial 空间要素选择
    DotSpatial 创建面状要素——含空洞
    DotSpatial 删除图层要素
    Dotspatial 创建面状图层
    Windows提权工具 CVE-2019-1405 & CVE-2019-1322
    C#操作码: .NET版“ShellCode”编写
  • 原文地址:https://www.cnblogs.com/YiStyle/p/5985717.html
Copyright © 2020-2023  润新知