转载: Android 线程通信

本文介绍了一种在Android应用中更新用户界面(UI)的方法:通过在主线程中定义一个Handler,并在后台线程中发送Message来更新UI。这种方法避免了直接在非UI线程中更新UI所导致的应用崩溃问题。

http://blog.youkuaiyun.com/Zengyangtech/archive/2010/07/29/5773090.aspx

在主activity中定一个Handler的成员,然后实现handlemassage函数,创建线程后在runable的run函数里new一个message,然后指定message对象的what成员,这个是指定message的一个id,然后在run中调用Handler的成员,使用其成员方法中的sendmessage(好像是叫这个),handlemassage函数中参数有个massage,根据该message参数中的what来对你发送message时指定的what来处理UI的功能

  1. privateHandlermHandler=newHandler(){
  2. publicvoidhandleMessage(Messagemsg){
  3. switch(msg.what){
  4. caseID_USER:
  5. //获取传递的数据
  6. //Bundledata=msg.getData();
  7. //intcount=data.getInt("COUNT");
  8. //处理UI更新等操作
  9. }
  10. };
  11. };

主activity中创建线程

  1. MyThreadthread=newMyThread();
  2. mThread=newThread(thread);
  3. mThread.start();

MyThread

  1. classMyThreadimplementsRunnable{
  2. publicvoidrun(){
  3. //执行数据操作,不涉及到UI
  4. Messagemsg=newMessage();
  5. msg.what=ID_USER;
  6. //这三句可以传递数据
  7. //Bundledata=newBundle();
  8. //data.putInt("COUNT",100);//COUNT是标签,handleMessage中使用
  9. //msg.setData(data);
  10. mHandler.sendMessage(msg);//向Handler发送消息,更新UI
  11. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值