Handler类的介绍
主要作用:处理大量数据的功能放在单独一个类中1.Handler的基本使用 Handler在使用过程中涉及到两个队列 1)线程队列 注意的方法: a./**调用post方法,将线程对象加入到消息队列中*/ handler.post(thread); b./**从线程队列中清除此线程对象*/ handler.removeCallbacks(thread); c./**调用postDelayed方法,将线程对象延时加入到消息队列中*/ handler.postDelayed(thread, 2000); 2)消息队列 /**将msg对象加入到消息队列当中*/ handler.sendMessage(msg);2.Handler与线程的关系 1)利用handler的话直接调用run方法 执行的是同一个线程,实现方法是handler.post(r); 2)利用start方法开启 执行是不同线程,实现方法必须调用start()方法开启 3)利用handler来实现线程的异步操作 用到一个重要的类叫looper:循环的从队列中取得消息的功能 实现异步的步骤: a. 先生成一个HandlerThread对象,启动start()方法 /**生成一个HandlerThread对象,实现了使用looper对象来处理消息队列的功能*/ HandlerThread handlerThread = new HandlerThread("handler Thread"); handlerThread.start(); b.开启start()方法 handlerThread.start(); c.创建一个handler,此时的handler从handlerThread得到的参数looper MyHandler handler = new MyHandler(handlerThread.getLooper());3.Bundle只能以String为键,值为其他基本数据类型的特殊Map 在handler中传递消息时会使用的类型: 1)当传递小量数据 msg.arg1 int 类型 msg.arg2 int 类型 msg.obj 引用数据类型 2)当传递大量数据使用Bundle对象 绑定数据时候使用msg.setData(b) 取数据时候使用msg.getData()