AsyncTask使用遇到的問題

多進程和多線程學習:--只有自己變優秀了才能遇到更優秀的別人
1、問題:如果AsyncTask被聲明爲Activity的非靜態內部類,那麼AsyncTask會保留一個對創建了AsyncTask的Activity的引用
   如果Activity已經被銷燬,AsyncTask的後臺線程還在執行,它將繼續在內存保留這個引用,
   導致Activity無法被回收,引起內存泄露。
   解決:在Activity銷燬之前cancel掉AsyncTask,中斷AsyncTask的執行。
   問題:屏幕旋轉或Activity在後臺被系統殺掉等情況會導致Activity的重新創建,之前運行的AsyncTask會持有一個之前Activity的引用,
   這個引用已經無效,這時調用onPostExecute()再去更新界面將不再生效。
   解決:在Activity生命週期結束之前cancel掉AsyncTask
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章