1: Activity中的消息循環是利用Looper來維護的。Activity自動爲主thread建立一個Looper。
2:在建立的子線程中,如果不使用Looper.prepare();和Looper.loop();,是沒有自己的Looper的。可以通過Looper.getMainLooper()來得到主thread的Looper,Looper.myLooper(); 來得到本thread的Looper。如果沒有Looper.prepare();,當然是得到NULL的。
3:Handler 默認的是attach到本線程的Looper上面,所以同樣的道理,如果沒有Looper.prepare(); 就不行。但當然也可以設置Looper給他。
常見的做法是在各個附線程裏面得到Looper.getMainLooper (或者直接是建立在主線程的handler),這樣發消息給主線程來刷新UI啥的。