众所周知,handler是一个消息机制,完善线程安全。
hander的基本用法就不在详细说明了,以下写出几个自己容易忽略的小点。
1.handler需要绑定一个looper
2.handler机制在主线成中用new定义时 ,自动绑定主线程的looper。
3.非主线程创建handler,需要手动开启looper(looper。prepare()----looper.loop),进行绑定,或者通过Looper.getMainLooper(),获得主线程的Looper。进行绑定。
4.子线程不能进行UI 更新。
5.使用post()将线程对象放到消息队列中后,当Looper轮询到该线程执行时,实际上并不会单独开启一个新线程,而仍然在当前Looper绑定的线程中执行,Handler只是调用了该线程对象的run()而已