Android webview 內(nèi)存泄露的解決方法
Android webview 內(nèi)存泄露的解決方法
最近在activity嵌套webview顯示大量圖文發(fā)現(xiàn)APP內(nèi)存一直在漲,沒(méi)法釋放內(nèi)存,查了很多資料,大概是webview的一個(gè)BUG,引用了activity導(dǎo)致內(nèi)存泄漏,所以就嘗試傳遞getApplicationContext。
1.避免在xml直接寫(xiě)webview控件,這樣會(huì)引用activity,所以在xml寫(xiě)一個(gè)LinearLayout,然后 linearLayout.addView(new MyWebview(getApplicationContext()));
這樣動(dòng)態(tài)生成webview就能避免內(nèi)存泄漏,可是這樣會(huì)導(dǎo)致部分機(jī)型的webview里面點(diǎn)擊超鏈接會(huì)出現(xiàn)異常,程序崩潰,暫時(shí)的解決辦法是禁止點(diǎn)擊,需要重寫(xiě)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關(guān)閉時(shí)需要手動(dòng)釋放webview內(nèi)存
@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; } }
上面的方法 已經(jīng)可以把內(nèi)存釋放出來(lái),但是有缺陷,就是沒(méi)法點(diǎn)擊webview的內(nèi)容,還有一種方法是給嵌套webview的activity另開(kāi)一個(gè)進(jìn)程,作為一個(gè)獨(dú)立進(jìn)程展示
以上實(shí)用對(duì) Android webview 內(nèi)存泄露的解決方法的實(shí)例詳解,如有疑問(wèn)請(qǐng)大家留言討論,共同進(jìn)步,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android 物理游戲之重力系統(tǒng)開(kāi)發(fā)示例代碼
介紹Android 物理游戲之重力系統(tǒng),這里提供了詳細(xì)的資料整理,并附示例代碼和實(shí)現(xiàn)效果圖,有興趣的小伙伴可以參考下2016-08-08Android?Compose之Animatable動(dòng)畫(huà)停止使用詳解
這篇文章主要為大家介紹了Android?Compose之Animatable動(dòng)畫(huà)停止使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03android高仿小米時(shí)鐘(使用Camera和Matrix實(shí)現(xiàn)3D效果)
這篇文章主要介紹了android高仿小米時(shí)鐘(使用Camera和Matrix實(shí)現(xiàn)3D效果),非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-01-01Android仿微信朋友圈點(diǎn)擊加號(hào)添加圖片功能
這篇文章主要為大家詳細(xì)介紹了Android仿微信朋友圈點(diǎn)擊加號(hào)添加圖片功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Android 使用registerReceiver注冊(cè)BroadcastReceiver案例詳解
這篇文章主要介紹了Android 使用registerReceiver注冊(cè)BroadcastReceiver案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Android搜索結(jié)果顯示高亮實(shí)例(有數(shù)據(jù)滑動(dòng)底部自動(dòng)刷新)
本篇文章主要介紹了Android搜索結(jié)果顯示高亮實(shí)例(有數(shù)據(jù)滑動(dòng)底部自動(dòng)刷新),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04