AsyncTask

一、什麼是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之後爲了維持穩定性,又將其變成了串行,但是還是可以並行的執行即運行線程池,但是建議還是使用串行,更加穩定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章