zoukankan      html  css  js  c++  java
  • 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不久,各处描述可能有不妥之处,以后发现再回过头来修改。。。。。

  • 相关阅读:
    java分页查询--oracle
    Tomcat Excel中的数据导出到页面中显示
    接口调用类3
    接口工具类2
    接口工具类
    redis 对外访问
    Spring 项目启动时执行
    scp 本地上传/下载服务器文件
    CentOS 安装 rabbitMQ
    卸载rabbitMQ
  • 原文地址:https://www.cnblogs.com/YiStyle/p/5985717.html
Copyright © 2011-2022 走看看