Handler用途(本质):handler使你能够给绑定的线程发送一个消息或者一个Runnable对象
从创建出一个Handler的时候,Handler就与创建出它的那个线程绑定了,它将发送消息或者Runnable对象到该线程的消息队列里面
在使用Handler的时候,会遇到sendMessage()和postRunnnable() ,两者有什么区别呢?
sendMessage():
在调度一个message,基于Looper做消息队列处理,也就是说,如果Handler绑定的是主线程,这个代码处理会经过Handler的looper做队列控制,在hanleMessage()中开子线程就不存在做耗时操作导致ANR问题
postRunnnable():
给别的线程插入一个操作。也就是说,如果Handler绑定的是主线程,调用这个方法会直接在主线程里插入这个操作,也就是说要在这个Runnable里面再开子线程,不然就会触发ANR