Android webview 內存泄露的解決方法
Android webview 內存泄露的解決方法
最近在activity嵌套webview顯示大量圖文發(fā)現(xiàn)APP內存一直在漲,沒法釋放內存,查了很多資料,大概是webview的一個BUG,引用了activity導致內存泄漏,所以就嘗試傳遞getApplicationContext。
1.避免在xml直接寫webview控件,這樣會引用activity,所以在xml寫一個LinearLayout,然后 linearLayout.addView(new MyWebview(getApplicationContext()));
這樣動態(tài)生成webview就能避免內存泄漏,可是這樣會導致部分機型的webview里面點擊超鏈接會出現(xiàn)異常,程序崩潰,暫時的解決辦法是禁止點擊,需要重寫webview,
public class MyWebview extends WebView { public MyWebview(Context context) { super(context); } public MyWebview(Context context, AttributeSet attrs) { super(context, attrs); } public MyWebview(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onTouchEvent(MotionEvent event) { return false; } }
這樣能避免出現(xiàn)程序崩潰。
2.activity關閉時需要手動釋放webview內存
@Override protected void onDestroy() { super.onDestroy(); if(webview_projectinfo != null){ webview_projectinfo.removeAllViews(); webview_projectinfo.destroy(); webview_projectinfo = null; ll_webview.removeAllViews(); ll_webview = null; } }
上面的方法 已經可以把內存釋放出來,但是有缺陷,就是沒法點擊webview的內容,還有一種方法是給嵌套webview的activity另開一個進程,作為一個獨立進程展示
以上實用對 Android webview 內存泄露的解決方法的實例詳解,如有疑問請大家留言討論,共同進步,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Android 物理游戲之重力系統(tǒng)開發(fā)示例代碼
介紹Android 物理游戲之重力系統(tǒng),這里提供了詳細的資料整理,并附示例代碼和實現(xiàn)效果圖,有興趣的小伙伴可以參考下2016-08-08Android?Compose之Animatable動畫停止使用詳解
這篇文章主要為大家介紹了Android?Compose之Animatable動畫停止使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03android高仿小米時鐘(使用Camera和Matrix實現(xiàn)3D效果)
這篇文章主要介紹了android高仿小米時鐘(使用Camera和Matrix實現(xiàn)3D效果),非常具有實用價值,需要的朋友可以參考下。2017-01-01Android 使用registerReceiver注冊BroadcastReceiver案例詳解
這篇文章主要介紹了Android 使用registerReceiver注冊BroadcastReceiver案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-08-08Android搜索結果顯示高亮實例(有數(shù)據(jù)滑動底部自動刷新)
本篇文章主要介紹了Android搜索結果顯示高亮實例(有數(shù)據(jù)滑動底部自動刷新),非常具有實用價值,需要的朋友可以參考下2017-04-04