Android学习第15课—Handler的使用(二)
来源:互联网 发布:windows开启samba 编辑:程序博客网 时间:2024/04/20 12:39
主要内容:
1 Handler与线程
2 Bundle的用法
3 在新线程当中处理消息的方法
Handler的post调用与Activity处于统一线程。要想使用另外的线程来处理,可以通过HandlerThread类,或者重现编写一个继承Handler类的子类。
1 Handler与线程
2 Bundle的用法
3 在新线程当中处理消息的方法
Handler的post调用与Activity处于统一线程。要想使用另外的线程来处理,可以通过HandlerThread类,或者重现编写一个继承Handler类的子类。
Bundle: 与Map类似存放键值对,特殊在键的类型都是String,值的类型也是有限的。可以使用Bundle在线程中传递数据。
package dj.handler;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.HandlerThread;import android.os.Looper;import android.os.Message;import android.util.Log;public class HandlerTestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //打印当前线程的id Log.d("TAG", "Activity-->" + Thread.currentThread().getId()); //生成一个HandlerThread对象,实现了使用Looper来处理消息队列的功能,这个类由Android应用程序框架提供 HandlerThread handlerThread = new HandlerThread("handler_thread");//HandlerThread提供循环处理消息的机制 //在使用HandlerThread的getLooper之间,必须先执行start方法 handlerThread.start(); MyHandler myHandler = new MyHandler(handlerThread.getLooper()); Message msg = myHandler.obtainMessage(); //将msg发送到目标对象,就是生成该msg的Handler对象 Bundle b = new Bundle();//使用Bundle来传递数据 b.putInt("age", 20); b.putString("name", "John"); msg.setData(b); msg.sendToTarget(); } class MyHandler extends Handler { public MyHandler(){} public MyHandler(Looper looper){ //Handler使用Looper这个线程来处理消息队列,即将Handler绑定到另外一个线程中来取消息对象 super(looper); } @Override public void handleMessage(Message msg) { Bundle b = msg.getData(); int age= b.getInt("age"); String name = b.getString("name"); Log.d("TAG", "age:" + age + ", name:" + name); Log.d("TAG", "handler-->" + Thread.currentThread().getId()); Log.d("TAG", "handleMessage"); } }}
- Android学习第15课—Handler的使用(二)
- Android学习第14课—Handler的使用(一)
- Android Handler的使用(二) 学习笔记
- Android Handler的使用(二)
- Android开发:Handler的使用(二)
- Android Handler的使用(二)
- Android Handler的使用(二)
- android Handler的使用(二)
- android Handler的使用(二)
- Android Handler的使用二
- Android学习笔记(五)——handler的使用
- android学习--Handler的使用
- 【Android学习】Handler的使用
- Handler的学习(二)
- Handler的使用(二)
- Handler的使用(二)
- <Android学习笔记二>——Handler的实现
- Android学习笔记:关于Handler的详解(二)
- 笔记本选购快速入门
- 明晰C++内存分配的五种方法的区别
- ASP.NET中如何获取汉字的拼音
- Oracle学习笔记(2)
- 编程原则:戒虚而务实,谋定而后动
- Android学习第15课—Handler的使用(二)
- 女弓虽-------偶象啊
- 神秘的程序员们
- 利用CONNECT BY实现二进制到十进制的转换
- 套接字使用时候的一些注意
- [unity3d] iTween文档解析(2) (iTween方法和属性)
- MFC中自定义消息
- struts2复杂参数传值OGNL
- ACE for linux 安装