国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Andriod內存泄露之WebView

2019-11-06 09:40:03
字體:
來源:轉載
供稿:網友

泄露原因

在這次開發過程中,需要用到webview展示但是當頻繁的退出再進入包含WebView 的Activit時,會出現內存泄露。有人說,一旦在你的xml布局中引用了webview甚至沒有使用過,都會阻礙重新進入application之后對內存的gc。包括使用MapView有時一會引發OOM,幾經周折在網上看到各種解決辦法,在這里跟大家分享一下。但是到目前為止還沒有找到根本的解決辦法,網上也有說是sdk的bug。但是不管怎么樣,我們還是需要使用的。

解決方案一 開啟獨立進程,與主進程隔開

在混合型app中WebView是主角,一切由它呈現,如58同城,趕集網等;在另一些超級app中亦有它的影子,微信,QQ,支付寶,沒有一個超級app能少了它,既能展示最新最潮的實時資訊,又能扮演盤踞一方的全功能型網站,與native結合后又能扮演諸如公眾號之內的應用等等,其能力可想而知。

然而WebView內存泄漏是眾所周知的,建議另外啟動一個進程專門運行WebView。不要9998,不要9999,我們要100%!WebView用完之后就把進程殺死,即使泄漏了也無礙。

對于封裝的webactivity,在manifest.xml

<activity android:name=".webview.WebViewActivity" android:launchMode="singleTop" android:PRocess=":remote" android:screenOrientation="unspecified" />

然后在關閉webactivity時銷毀進程

@Overrideprotected void onDestroy() { super.onDestroy(); System.exit(0);}

關閉瀏覽器后便銷毀整個進程,這樣一般95%的情況下不會造成內存泄漏之類的問題,但這就涉及到android進程間通訊,比較不方便處理, 優劣參半,也是可選的一個方案

解決方案二 不要在布局文件添加WebView

首先使用webview的時候,不在xml里面聲明,而是直接代碼new個對象,傳入application context防止activity引用濫用.

webView = new BridgeWebView(getContext().getApplicationContext());webFrameLayout.addView(webView, 0);

在使用了這個方式后,基本上90%的webview內存泄漏的問題便得以解決

簡書地址:http://www.jianshu.com/p/c2412918b2b5


上一篇:Swift筆記

下一篇:git使用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马边| 平凉市| 靖西县| 临清市| 小金县| 武陟县| 五莲县| 天长市| 姚安县| 龙江县| 铜鼓县| 南雄市| 沅陵县| 贵州省| 安陆市| 新泰市| 沙河市| 彭州市| 安西县| 阿鲁科尔沁旗| 泰安市| 安新县| 永昌县| 台中市| 祁阳县| 博客| 浦江县| 平泉县| 内乡县| 手游| 斗六市| 寻乌县| 琼结县| 宜章县| 邯郸县| 区。| 波密县| 子洲县| 琼海市| 东海县| 织金县|