設計目標:顯示通話記錄:
方法一:
一次性取出所有數據(通話記錄,聯繫人名字,聯繫人頭像),得到數據后再一次性顯示在介面上,犧牲時間複雜度,假設需要10s
方法二(推薦):
分線程運行
1.取出所有未分組數據顯示,假設耗時3s,立即顯示在介面上
2.取出聯繫人姓名,然後更新UI介面,耗時3s
3.取出聯繫人頭像,然後更新UI介面,耗時4s
此方法分三步走并異步顯示UI介面,雖然時間複雜度沒變,但是由於計算機運行速度高於人眼的分辨速度,造成視差感覺像是只花了三秒顯示所有數據信息
附:
線程執行需要Handler類,Handler和Intent區別在於Handler可以發出消息指令并跟新UI介面,Intent只是發出消息,更多詳情參考官方文檔