Android线程处理之Handler
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android线程处理之Handler,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1962字,纯文字阅读大概需要3分钟。
内容图文
![Android线程处理之Handler](/upload/InfoBanner/zyjiaocheng/1168/27a7bb460f5743ddafd9b7cc912007fa.jpg)
上一篇已经简单为大家介绍了一下关于Handler的使用,本篇我们就一起再来探讨一下Handler的高级使用,上一篇我们仅仅是简单的进行UI界面的更新,本篇我们来一起探讨一下如何把子线程的数据发送到主线程进行处理,对于这个问题,我想一定有很多小伙伴困扰过,其实这很简单的,我之前和大家一样感觉在从子线程发送到主线程是不可能的,不过现在可以真正否定我之前的观点了,子线程向主线程发送数据是完全没问题的。好了,废话不多说,下面我们就一起来探讨一下吧。
1、我们通过Handler和Message来完成:
/* * 传递int型数据 */ new Thread(new Runnable() { @Override publicvoid run() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Message msg = new Message(); //mes.arg1、mes.arg2、mes.what:均只能传int型数据 msg.arg1 = 1; msg.arg2 = 2; msg.what = 3; handler.sendMessage(msg); } }).start();
处理Message发送过来的数据:
// 声明一个Handler对象,并实现其中的handleMessage()方法 private Handler handler = new Handler(){ publicvoid handleMessage(android.os.Message msg) { if(msg.what==3){ textview.setText("msg.arg1:"+msg.arg1+" msg.arg2:"+msg.arg2); }else{ if(msg.what==2){ Person person = (Person) msg.obj; textview.setText("姓名:"+person.getName()+" 性别:"+person.getSex()+" 年龄:"+person.getYear()); } } }; };
2、Message的使用:
上面我们向Handler发送的数据均为Int数据,这当然无法满足我们的日常需求,那如何通过Message向Handler发送一个Object数据呢?大家不要担心Message为我们封装了一个obj()方法,方便我们传递数据。
new Thread(new Runnable() { @Override publicvoid run() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Person person = new Person(); person.setName("小王"); person.setSex("girl"); person.setYear(22); Message msg = new Message(); msg.what = 2; msg.obj = person; handler.sendMessage(msg); } }).start(); }
Person是我封装的一个对象:
public class Person { private String name; private String sex; private int year; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } publicvoid setSex(String sex) { this.sex = sex; } publicint getYear() { return year; } publicvoid setYear(int year) { this.year = year; } }
对于这个Message的数据的处理,已经在上面的为大家展示。
看到这里你是不是已经感觉到Handler的强大,确实当我们处理多线程问题时,Handler是非常方便的,感兴趣的可以持续关注哟,下一篇更精彩。
原文:http://www.cnblogs.com/AndroidJotting/p/4440999.html
内容总结
以上是互联网集市为您收集整理的Android线程处理之Handler全部内容,希望文章能够帮你解决Android线程处理之Handler所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。