handler允许发送消息和将一个Runnable object压入对应的消息队列。没一个handler对象都是一个拥有消息队列/线程队列的独立的线程。
handler主要用来做异步处理。
myhandler.post(myrunble);
private static Runnable myrunble = new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
Log.i("runnable.name=",Thread.currentThread().getName());
Log.i("runnalble.id=",Double.toString(Thread.currentThread().getId()));
}
};
//注意
//将一个线程加到handler的线程队列中,并没有生成一个新的线程,其线程ID和调用myhandler.post(myrunnble)的线程的ID一样。
//为重新生成一个新的线程,
//方法一:
需要调用thread.start()的方法
Thread t = new Thread(myrunble);
t.start();
//方法二:
使用HandlerThread类。
HandlerThread handlerThread = new HandlerThread("myHandlerThreadName");
myhandlers handler = new myhandlers(handlerthread);
//需要重写构造函数
class myhandlers extends Handler{
public myhandlers(Looper looper){
super(looper);
}
}