內存泄漏的場景和解決辦法


4.避免使用static變量

成員變量聲明爲static,他的生命週期就和整個App的生命週期是一致的。如果APP進程設計上是常駐內存的,

這時及時APP被切到後臺,這部分static變量也是不會被釋放的。按照現在APP內存管理機制,佔內存較大的後臺進程將優先被回收。

所以當進程被回收之後,所存在的那些變量其實他的數據是不安全的。對於這類static變量造成的內存泄漏的修復方法:

在類設計的時候要考慮好,是不是在初始化的時候去設爲靜態成員?是不是可以考慮一下懶加載,儘量避免static變量,

如一定要設計static變量,一定要對這些變量的生命週期管理起來。

 

5.資源未關閉造成的內存泄漏

6.AsyncTask造成的內存泄漏

與handler類似,不同的是:在ondestory的時候執行.cancle()方法。就能避免浪費資源。