时间:2021-05-21
Android webview 内存泄露的解决方法
最近在activity嵌套webview显示大量图文发现APP内存一直在涨,没法释放内存,查了很多资料,大概是webview的一个BUG,引用了activity导致内存泄漏,所以就尝试传递getApplicationContext。
1.避免在xml直接写webview控件,这样会引用activity,所以在xml写一个LinearLayout,然后 linearLayout.addView(new MyWebview(getApplicationContext()));
这样动态生成webview就能避免内存泄漏,可是这样会导致部分机型的webview里面点击超链接会出现异常,程序崩溃,暂时的解决办法是禁止点击,需要重写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; }}这样能避免出现程序崩溃。
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 内存泄露的解决方法的实例详解,如有疑问请大家留言讨论,共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
开了webview的作用如下: 1、有效增大App的运存,减少由webview引起的内存泄露对主进程内存的占用。 2、避免WebView的Crash影响Ap
Android优化Handler防止内存泄露Demo描述:Handler可能导致的内存泄露及其优化1关于常见的Handler的用法但是可能导致内存泄露2优化方式
Android解决WebView无法上传文件的问题Android原生的WebView并不支持上传文件,需要我们自己实现相应的方法。于是我把工作中的相关代码记录下
Android解决WebView调用loadData()方法显示乱码的问题第一步:mWebView.getSettings().setDefaultTextEn
电脑升级内存条常见故障的原因及解决方法 图2 电脑升级内存条常见故障的原因及解决方法 图3 电脑升级内存条常见故障的原因及解决方法 图4 安装内存条的