盧珀是什么?
Loper是一個(gè)類,用于執(zhí)行隊(duì)列中的消息(Runnable)。普通線程沒有這樣的隊(duì)列,例如簡(jiǎn)單線程沒有任何隊(duì)列。它只執(zhí)行一次,在方法執(zhí)行完成后,線程將不會(huì)運(yùn)行另一條消息(Runnable)。
在哪里我們可以使用Loper類?
如果有人想要執(zhí)行多條消息(Runnable),那么他應(yīng)該使用Loper類,它負(fù)責(zé)在線程中創(chuàng)建隊(duì)列。例如,在編寫從Internet下載文件的應(yīng)用程序時(shí),我們可以使用Loper類將要下載的文件放在隊(duì)列中。
它是怎么工作的?
的確有prepare()
方法準(zhǔn)備活套。然后你可以用loop()
方法來在當(dāng)前線程中創(chuàng)建消息循環(huán),現(xiàn)在Loper可以執(zhí)行隊(duì)列中的請(qǐng)求,直到退出循環(huán)為止。
這是你可以準(zhǔn)備活套的代碼。
class LooperThread extends Thread {
public Handler mHandler;
@Override
public void run() {
Looper.prepare();
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();
}
}