1.Handler:能夠看作是一個工具類,用來向消息隊列中插入消息的; 工具
2.Thread:全部與Handler相關的功能都是與Thread密不可分的,Handler會與建立時所在的線程綁定; oop
3.Message:消息; spa
4.MessageQueue:消息隊列,對消息進行管理,實現了一個Message鏈表; 線程
5.Looper:消息循環,從MessageQueue中取出Message進行處理; 對象
6.HandlerThread:繼承Thread,實例化時自動建立Looper對象,實現一個消息循環線程. 繼承
消息插入隊列的位置由參數uptimeMillis來肯定。 隊列
1.HandlerThread就是一個封裝了Looper的Thread. 消息隊列
2.Handler會與實例化時所在的線程綁定. 循環
1.須要更新UI,則須要使用與主線程綁定的Handler發送消息,若使用在子線程中建立的Handler則會拋出異常; 方法
2.子線程中實例化Handler對象首先須要調用Looper.prepare(),不然會拋出異常;
3.調用Looper.loop()方法消息循環纔會啓動;
在onCreate(),onStart(),onResume()中經過子線程來修改UI不會拋出異常 。