這篇“Android中使用webview出現(xiàn)內(nèi)存泄露怎么解決”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Android中使用webview出現(xiàn)內(nèi)存泄露怎么解決”文章吧。
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; } }
以上就是關(guān)于“Android中使用webview出現(xiàn)內(nèi)存泄露怎么解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。