android中的多线程编程及消息机制

来源:互联网 发布:淘宝访客数影响因素 编辑:程序博客网 时间:2024/05/22 15:28

应用开发中,经常会遇到需要多线程技术的时候,比如UI显示和数据处理分开。

在实际应用中经常会遇到这种场景,我们需要新开一个线程来监听数据状态(数据状态的改变,接收数据,发送数据等等),当发现数据状态改变时通知主线程(通过消息机制发送消息到主线程),主线程接收到通知之后进行处理(自定义消息处理接口)。

具体实现如下:

  1. 准备线程的创建和消息的处理,这里需要用到android里面的Handler和Thread类,在主线程中添加两个成员Handler、Thread,并实现消息的发送和处理:
    private Handler handler = new Handler(){    @Override    public void handleMessage(Message msg) {        // TODO Auto-generated method stub        switch(msg.what){            case 0:                //添加自定义消息处理                //...                break;            default:break;        }    }};private Thread MagCardDataListenThread = new Thread(new Runnable(){    @Override    public void run() {        // TODO Auto-generated method stub        while(isMagCardRunning){            try{                Thread.currentThread().sleep(1000);                //状态改变时发送消息到主线程                if(magcard.IsGetMagCardData()){                    Message msg = new Message();                    msg.what = 0;                    handler.sendMessage(msg);                    }                }catch(InterruptedException e){                    e.printStackTrace();                }        }    }});

  2. 启动子线程
     MagCardDataListenThread.start();

就两步,就把一个多线程的框架搭好了。
原创粉丝点击