您好,登錄后才能下訂單哦!
最近遇到一個Webview內存泄露的問題,上網查了一些結果,在此記錄一下:
webview在android系統中屬于一個比較特殊的view,在調用
webview.destroy()的時候,必須確保webview已經從view
tree中被刪除,否則這個函數不會執行的。如本app中的用法,在xml中靜態定義的webview,只有在整個view退出后調用
webview.destroy()才會被正確執行,但整個view退出后又找不到webview了,這個是很矛盾的。
所以android給出的解決方案是,不要在xml中定義webview,在xml中只定義view,然后在需要webview的時候,創建一個webview,并把webview放到定義好的view的位置。
在刪除得的時候,先把webview從parent view中刪除,然后釋放,就不會有問題了。
在應用層修改如下:
WebView mWebView = new WebView(getApplicationgContext());
LinearLayout mll = findViewById(R.id.xxx);
mll.addView(mWebView);
protected void onDestroy() {
super.onDestroy();
mll.removeView(wv); //從布局中移除webView
mWebView.removeAllViews();
mWebView.destroy()
}
參考資料:http://my.oschina.net/zhibuji/blog/100580
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。