參考 : http://www.2cto.com/kf/201503/385753.htmlhtml
這個問題好像沒有獲得統一的認識,有些人使用以下方法,但我感受並不能根治:ide
大體思路: 最好是動態建立一個WebView的容器,而不是在xml佈局裏寫死。 wv= new WebView(context); 這個Context 不要用當前Acticvty的context,由於萬一當前Actity被殺死,則很容易OOM,因此咱們建議使用Applcation的context.佈局
接下來動態添加 addView(mWebView );最後在Destroy()方法中以下操做:spa
@Override
code
protected
void
onDestroy() {
xml
ll.removeAllViews();
htm
wv.stopLoading();
進程
wv.removeAllViews();
內存
wv.destroy();
rem
wv =
null
;
ll =
null
;
super
.onDestroy();
}
一般根治這個問題的辦法是爲 WebView 開啓另一個進程,經過 AIDL 與主進程進行通訊, WebView 所在的進程能夠根據業務的須要選擇合適的時機進行銷燬,從而達到內存的完整釋放.