在我現在寫的這個App里邊會有類似于那些新聞類的消息,就是有個list,里邊每個item包含文字圖片這些內容,我現在使用的是AsyncTask來進行網絡請求的??吹骄W上有些人說在android中使用AsyncTask很容易造成內存泄露,請問前輩們有什么方法可以避免AsyncTask的內存泄露,或者用其他什么方法進行網絡請求。
2 回答

慕斯709654
TA貢獻1840條經驗 獲得超5個贊
不建議使用AsyncTask進行網絡操作,Android文檔中有寫到AsyncTask應該處理10秒一下的操作(通常為輕量的本地IO操作),由于網絡操作存在不確定的超時,所以可能操作會在10秒以上,不建議使用。
關于AsyncTask內存泄露的,以及并行串行問題。可以訪問這篇文章了解。譯文:Android中糟糕的AsyncTask
將AsyncTask或者Thread的子類作為單獨的文件,不持有Activity的強引用
將AsyncTask或者Thread的子類使用static修飾,則不會隱式持有Activity的強引用
如果是匿名內部類,則需要將其對象設置成成員屬性,使用static修飾就不會隱式持有Activity的強引用。
如果是進行網絡操作,可以使用將AsyncTask對象做成靜態的成員變量。使用這個Executors.newSingleThreadExecutor()或者Loaders。
- 2 回答
- 0 關注
- 750 瀏覽
添加回答
舉報
0/150
提交
取消