Handle与线程

Handle机制

andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。

1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。 
2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从Message Queue取出)所送来的消息。
3) Message Queue(消息队列):用来存放线程放入的消息。 

4)线程:UIthread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。 


5) new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//这并不是开启了一个新的线程,这只是让
   下面运行的程序,在1s钟后运行                                             

}
}, 1000);


6)//创建一个新线程 发送消息

   new Thread() {          
@Override
public void run() {
try {
sleep(1000); // 休眠1s
Message msg = mHandler.obtainMessage(0);
mHandler.sendMessage(msg); //向handle发送了一个Message  内容为0
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();  //只有当线程中出现start时,代表了开启了一个新的线程 

//接收handle发送过来的消息

private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
//在下面写更新Ui的东西


break;
}
}
};

7)下载 等耗时的操作要放到 子线程中去,否则易造成网络堵塞

你可能感兴趣的:(Handle与线程)