WebView内存泄露的解决方案

一、简介:

做Android开发的相信都对webview不会陌生,而且也对系统自带的webview本身存在的问题也是怨念很久了,一方面是本身对js的支持不是很好另外一方面就是经常被人诟病的内存泄露了,网上也有很多解析和方案但至少在我的项目中是没任何效果的,今天我就分享一下我最终是怎么解决这些问题的(其实是很蠢的一个办法)。

二、需求背景:

需要一个带有加载进度条的webview来正常的显示合作方和自己的web页面。
1、解决webview对一些js的支持:
2、解决webview内存泄露:

关于内存泄漏终于找到了终极解决办法!!!该办法适用于我们的需求,在退出WebView的界面之后,迅速回收内存。也就是说为加载WebView的界面开启新进程,在该页面退出之后关闭这个进程。

这一点说了之后,你懂了吧?
但是在这个其中,杀死自己进程的时候又遇到了问题,网上介绍的各种方法都不好使,
killBackgroundProcesses(getPackageName());各种不好用,最后使用System.exit(0);直接退出虚拟机(Android为每一个进程创建一个虚拟机的)。这个肯定不用纠结了,一旦退出,内存里面释放。听说QQ也是这么做。

在WebView所在的activity中,杀死WebView所在的进程(单独为WebView所在的activity开一个进程,注意,一个应用可以有多个进程

@Override
public void onDestroy() {android.os.Process.killProcess(android.os.Process.myPid());super.onDestroy();
}

清单文件

<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:process="com.processkill.p1" // can be given any name android:theme="@style/AppTheme" ><activityandroid:name="com.processkill.A"android:process="com.processkill.p2"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><---你的WebView所在的activity-><activityandroid:name="com.processkill.B"android:process="com.processkill.p3" //为WebView所在的activity单独开一个进程android:label="@string/app_name" ></activity></application>

  

  




更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat启用HTTPS协议配置过程

Article1较为简洁&#xff0c;Article2较为详细&#xff0c;测试可行。 Article1 概念简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试…

常见的Java神话

这些问题在任何面试中都可能太过提出而无法提出&#xff0c;因为它们可能会使候选人推迟。 不管怎样&#xff0c;他们可能会在您自己的时间练习。 误解1&#xff09;System.exit&#xff08;0&#xff09;阻止最终被调用 为什么这样的代码 System.setSecurityManager(new Sec…

萧山职称计算机考试培训,浙江萧山2017年职称计算机考试时间安排

【摘要】环球网校分享的浙江萧山2017年职称计算机考试时间安排届时网校会及时更新职称计算机考试报名入口&#xff0c;希望对大家报考职称计算机考试有帮助&#xff0c;更多资料敬请关注环球职称计算机考试频道&#xff0c;网校会及时更新考【摘要】环球网校分享的“浙江萧山20…

springboot配置idea 热部署

背景&#xff1a; 在开发中&#xff0c;当我们修改代码之后&#xff0c;每次都要重新启动&#xff0c;很是浪费时间&#xff0c;在springboot中就有一种热部署方式&#xff0c;可以实现想要修改不需要每次都重新启动&#xff0c;保存即可生效 用法&#xff1a; 一、maven 添加 …

PMP-PMBOK-培训(3)Introduction to Project Process Groups and Initiating a Project

Overview of project management processes The five process groups are:initiating,planning,executing,mornitoring and controlling,and closing. 转载于:https://www.cnblogs.com/xuxiaoguang/archive/2008/09/03/1282709.html

10分钟看懂Docker和K8S

作者&#xff1a;鲜枣课堂链接&#xff1a;https://www.jianshu.com/p/f1f94c6968f5 2010年&#xff0c;几个搞IT的年轻人&#xff0c;在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说&#xff0c;是和LXC有关的容器技术。…

在Spring Boot中实现相关ID(用于SOA /微服务中的分布式跟踪)

上周参加了在Geecon上Sam Newman的微服务讨论后&#xff0c;我开始思考更多有关用于监视&#xff0c;报告和诊断的面向服务/微服务平台最可能的基本功能&#xff1a;相关ID。 关联ID允许在面向服务的复杂平台中进行分布式跟踪&#xff0c;在该平台中&#xff0c;对单个应用程序…

计算机专业论文关于天气预报的,关于天气预报论文范文写作 天气预报相关论文写作资料...

天气预报,本文是一篇关于天气预报论文范文&#xff0c;可作为相关选题参考,和写作参考文献。天气预报论文参考文献&#xff1a;每天吃过晚饭,严惠语都会准时打开电视,收看黑龙江电视台和云南电视台的天气预报节目.自从女儿考上云南大学,为了能攒够女儿下学期的费用,老公背起行李…

OkHttp自定义重试次数

本文主要应用了OkHttp的Interceptor来实现自定义重试次数 虽然OkHttp自带retryOnConnectionFailure(true)方法可以实现重试&#xff0c;但是不支持自定义重试次数&#xff0c;所以有时并不能满足我们的需求。 #1.自定义重试拦截器&#xff1a; /*** 重试拦截器*/ public clas…

Ruby的库路径

irb下打入p $即显示出来 如: irb(main):003:0* p $: ["c:/ruby/lib/ruby/site_ruby/1.8", "c:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt", "c:/ruby/lib/ruby/site_ruby", "c:/ruby/lib/ruby/1.8", "c:/ruby/lib/ruby/1.8/i38 …

【快报】基于K2 BPM的新一代协同办公门户实践交流会

2014年2月28日&#xff0c;“基于BPM的新一代协同办公门户”用户实践交流活动在深圳金茂JW万豪酒店3楼Meet Room IV举办。本次会议由K2携手微软共同举办&#xff0c;邀请到的参会企业都是K2 的BPM老客户或对BPM新一代协同办公门户非常感兴趣的新朋友&#xff0c;他们有&#xf…

80个让你笑爆肚皮的程序员段子,不好笑算我输!

阅读本文大概需要 12 分钟。 1、折磨 对程序员的一般折磨&#xff1a;离奇的需求&#xff0c;对程序员的超级折磨&#xff1a;改三次需求~~~ 2、开发时间 项目经理说&#xff1a;给你三个人&#xff0c;多久可以完成&#xff1f;程序员&#xff1a;3个月&#xff01;那五个人呢…

Spring Integration Java DSL示例–使用Jms名称空间工厂进一步简化

在较早的博客文章中&#xff0c;我谈到了虚拟卢布戈德堡流程&#xff0c;该流程通过一系列复杂的步骤将字符串变成大写&#xff0c;本文的前提是引入Spring Integration Java DSL&#xff0c;作为通过xml配置文件定义集成流程的替代方法。 感谢Artem Bilan &#xff0c;在写完…

冯诺依曼计算机结构教案,冯诺依曼结构的计算机-同济大学精品课程.PPT

冯诺依曼结构的计算机-同济大学精品课程* 第一章 概 述 同济大学软件学院 课程的内容&#xff1a; 1&#xff0e;介绍单计算机系统的硬件组成 (内部结构、工作机制) 2&#xff0e;计算机自动工作的原理 3&#xff0e;在对工作原理了解的基础上&#xff0c;讲述有关计算机设 计的…

非安装版的PostgreSQL8.3.3的首次使用经历

第一次用Postgre&#xff0c;已经是好多年以前了&#xff0c;隐约记得是在linux下边&#xff0c;build半天&#xff0c;然后手动配置库文件之类。 今天在整理资料的时候发现&#xff0c;Postgre出现了解压缩直接使用的版本&#xff0c;上边注明了for expert only. 呵呵&#xf…

腾讯TBS X5 WebView的简单使用

工作中经常涉及H5网页的加载工作&#xff0c;最多使用的就是安卓系统控件WebView&#xff0c;但是当网页内容比较多的时候&#xff0c;需要等待很久才能加载完&#xff0c;加载完后用户才能看到网页中的内容&#xff0c;这样用户需要等很久&#xff0c;体验很差。 那能不能边加…

针对新手的Java EE7和Maven项目–第5部分–使用Arquillian / Wildfly 8进行单元测试

从前面的部分恢复 第1 部分 &#xff0c; 第2 部分 &#xff0c; 第3 部分 &#xff0c; 第4部分 &#xff0c; 这是第一篇“额外”的帖子&#xff0c;基于我正在此系列博客文章上“构建”的Maven JavaEE7演示项目。 我们已经定义了一个坚实的结构和一些模块。 在这样的应用程…

C/S,B/S的区别与联系

C/S 是Client/Server 的缩写。服务器通常采用高性能的PC、工作站或小型机&#xff0c;并采用 大型数据库系统&#xff0c;如Oracle、Sybase、Informix 或SQL Server。客户端需要安装专用的客户 端软件。 B/&#xff33;是Brower/Server 的缩写&#xff0c;客户机上只要安装一个…

五年级下册电子计算机与多媒体,语文人教版五年级下册《电子计算机与多媒体》.doc...

《电子计算机与多媒体》教学设计沈彦坤 石家庄市鹿泉区石井乡封庄小学?一、概述??语文&#xff0c;五年级五年级下册&#xff0c;第一课时熟悉课文内容,学会生字,理解新词意思&#xff0c;学习课文1-3段。了解计算机的产生与发展&#xff0c;了解什么是多媒体,计算机与多媒体…

Airflow安装与使用

# Airflow 1.10安装本次安装Airflow版本为1.10&#xff0c;其需要依赖Python和DB&#xff0c;本次选择的DB为Mysql。本次安装组件及版本如下&#xff1a;Airflow 1.10.0Python 3.6.5Mysql 5.7# 整体流程1. 建表2. 安装3. 配置4. 运行5. 配置任务启动scheduleairflow schedul…