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

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

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

具体实现如下:

  1. 准备线程的创建和消息的处理,这里需要用到android里面的Handler和Thread类,在主线程中添加两个成员Handler、Thread,并实现消息的发送和处理:
    [java]  view plain copy
    1. private Handler handler = new Handler(){  
    2.   
    3.     @Override  
    4.     public void handleMessage(Message msg) {  
    5.         // TODO Auto-generated method stub  
    6.         switch(msg.what){  
    7.             case 0:  
    8.                 //添加自定义消息处理  
    9.                 //...  
    10.                 break;  
    11.             default:break;  
    12.         }  
    13.     }  
    14.   
    15. };  
    16. private Thread MagCardDataListenThread = new Thread(new Runnable(){  
    17.   
    18.     @Override  
    19.     public void run() {  
    20.         // TODO Auto-generated method stub  
    21.         while(isMagCardRunning){  
    22.             try{  
    23.                 Thread.currentThread().sleep(1000);  
    24.                 //状态改变时发送消息到主线程  
    25.                 if(magcard.IsGetMagCardData()){  
    26.                     Message msg = new Message();  
    27.                     msg.what = 0;  
    28.                     handler.sendMessage(msg);  
    29.                     }  
    30.                 }catch(InterruptedException e){  
    31.                     e.printStackTrace();  
    32.                 }  
    33.         }  
    34.   
    35.     }  
    36. });  

  2. 启动子线程
    [java]  view plain copy
    1. MagCardDataListenThread.start();  

就两步,就把一个多线程的框架搭好了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值