什么是Handler?
Handler可以发送和处理消息对象或Runnable对象,这些消息对象和Runnable对象与一个线程相关联。每个Handler的实例都关联了一个线程和线程的消息队列。当创建了一个Handler对象时,一个线程或消息队列同时也被创建,该Handler对象将发送和处理这些消息或Runnable对象。
handler类有两种主要用途:
执行Runnable对象,还可以设置延迟。
两个线程之间发送消息,主要用来给主线程发送消息更新UI。
为什么要用Handler
解决多线程并发问题,假设如果在一个activity中,有多个线程去更新ui,并且都没有加锁机制,那界面显示肯定会不正常。于是andoird官方就封装了一套更新ui的机制,也可以用handler来实现多个线程之间的消息发送。
如何使用Handler
handler常用的方法有以下这些:
post(Runnable) postAtTime(Runnable,long) postDelayed(Runnable,long) sendEmptyMessage(int) sendMessage(Message) sendMessageAtTime(Message,long) sendMessageDelayed(Message,long)