一、什麼是AsyncTask
1、本質上就是一個封裝了線程池和handler的異步框架
二、AsyncTask的使用方法
1、三個參數
params是執行AsyncTask時需要傳入的參數,可用於後臺執行;
Progress 後臺執行時,可以在界面上展示的進度;
Result 任務執行結束時,返回的數據
2、5個方法
三、AsyncTask的內部原理
四、AsyncTask的注意事項
1、內存泄漏的解決方案
1)、內部類使用靜態內部類;
2)、傳進來的外部activity使用弱引用;
3) 、在Acitvity的onDestory() 方法中取消線程調用AsyncTask.cancel();
2、生命週期
1)、如果沒有在activity的onDestory() 方法中取消線程調用AsyncTask.cancel(),可能會導致系統的不穩定;
3、結果丟失
當系統內存不足,活着屏幕旋轉,使得Activity重新創建,而AsyncTask中持有的是原activity 的引用,在線程執行結束後要更新界面時,原activity已經沒了。
4、並行 or 串行
android 1.6之前是串行,android 1.6之後變成了並行 ,但是在2.3之後爲了維持穩定性,又將其變成了串行,但是還是可以並行的執行即運行線程池,但是建議還是使用串行,更加穩定。