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

  • 相关阅读:
    ssh出错 sign_and_send_pubkey: signing failed: agent refused operation
    使用dd命令制作U盘启动盘wodim刻录光盘cd dvd
    Python示例项目学习
    Python知乎上推荐的项目
    Python10大热门项目
    Python开源项目Top30
    Python适合练手的项目
    Python80个练手项目列表
    Python爬虫实例项目
    Python实例100个(基于最新Python3.7版本)
  • 原文地址:https://www.cnblogs.com/YiStyle/p/5985717.html
Copyright © 2011-2022 走看看