Handler使用方式 因发送消息到消息队列的方式不同而不同,,使用Hnadler.sendMessage() 和 Handler.post() Handler中有四个重要的类 处理器类(Handler),消息队列类(MessageQueue),循环器类(looper)消息类(Message)
大概原理 : 创建主线程时,会自动调用ActivityThread的一个静态main(), main()方法会调用Looper.prepareMainLooper()为主线程生成一个Looper对象,同时也会生成其对应的MessageQueue对象,既主线程的Looper对象自动生成,不需要手动生成,而子线程的Looper对象则需手动通过Looper.prepare()创建,在子线程若不手动创建Looper对象,则无法生成Handler对象
handler机制用来实现线程之间的通信
Handler发送消息到MessageQueue消息队列中 , looper通过dispatchMessage()方法将消息回调给Handler,Handler在通过handlerMessage() 方法完成消息处理 如下图所示