Handler的设计有2个用途:
1.指定一个消息或者一个线程在何时执行
2.执行另外一个线程中的操作
Handler接受一个消息或者一个与消息队列已关联的Runnable
当一个Handler创建时,它会绑定到创建它的那个线程和那个线程的消息队列。而且,一个Handler只会和一个线程绑定。
当一个进程创建时,它会创建一个消息队列,这个消息队列用来管理这个应用显示在最前端的activity或者broadcast receiver关联的窗口。这个时候你可以创建一个Handler用来和主线程交互。
当Handler处理接收的消息或者runnable时,可以即时处理也可以延时处理。即时处理指要处理的消息或者runnable已经在handler绑定的线程中处于消息队列的最前面。延时处理通过Handler提供的API实现。
Handler.Callback接口的使用:当你想让一个已经存在的Handler处理一个不是它本来可以处理的操作时,你可以使用它,使用方法见Handler的构造函数。
Handler(Handler.Callback callback)
Handler(Looper looper, Handler.Callback callback)
其中后面一个构造函数的含义是用looper的消息队列代替创建handler本身的那个线程的纤细队列,用callback的handleMessage方法来代替handler本来要做的操作。
参考链接:http://www.cnblogs.com/keyindex/articles/1822463.html
1.指定一个消息或者一个线程在何时执行
2.执行另外一个线程中的操作
Handler接受一个消息或者一个与消息队列已关联的Runnable
当一个Handler创建时,它会绑定到创建它的那个线程和那个线程的消息队列。而且,一个Handler只会和一个线程绑定。
当一个进程创建时,它会创建一个消息队列,这个消息队列用来管理这个应用显示在最前端的activity或者broadcast receiver关联的窗口。这个时候你可以创建一个Handler用来和主线程交互。
当Handler处理接收的消息或者runnable时,可以即时处理也可以延时处理。即时处理指要处理的消息或者runnable已经在handler绑定的线程中处于消息队列的最前面。延时处理通过Handler提供的API实现。
Handler.Callback接口的使用:当你想让一个已经存在的Handler处理一个不是它本来可以处理的操作时,你可以使用它,使用方法见Handler的构造函数。
Handler(Handler.Callback callback)
Handler(Looper looper, Handler.Callback callback)
其中后面一个构造函数的含义是用looper的消息队列代替创建handler本身的那个线程的纤细队列,用callback的handleMessage方法来代替handler本来要做的操作。
参考链接:http://www.cnblogs.com/keyindex/articles/1822463.html