Android线程之间的通讯

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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不久,各处描述可能有不妥之处,以后发现再回过头来修改。。。。。

以上是关于Android线程之间的通讯的主要内容,如果未能解决你的问题,请参考以下文章

java-- 多线程之间实现通讯

线程之间通讯

通过线程通讯获取手机正在运行中的软件及大小(仿手机管家 扫描软件)

Android-广播概念

Android中切换标签片段之间的延迟

Android 线程间通讯机制