android webview清理缓存

最近写了个Android项目 遇到了一个问题就是webview 的缓存问题 每次进入程序webview都用缓存。接下来说说这问题是如何解决的。

首先了解下缓存的分类

页面缓存:

加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器的行为而产生,开发者只能通过
配置HTTP响应头影响浏览器的行为才能间接地影响到这些缓存数据。 而缓存的索引放在:/data/data/<包名>/databases
对应的文件放在:/data/data/package_name/cache/webviewCacheChromunm下

数据缓存:

分为AppCache和DOM Storage两种
AppCache:
我们能够有选择的缓冲web浏览器中所有的东西,从页面、图片到脚本、css等等。
尤其在涉及到应用于网站的多个页面上的CSS和JavaScript文件的时候非常有用。其大小目前通常是5M。
在Android上需要手动开启(setAppCacheEnabled),并设置路径(setAppCachePath)和容量
(setAppCacheMaxSize),而Android中使用ApplicationCache.db来保存AppCache数据!
DOM Storage:
存储一些简单的用key/value对即可解决的数据,根据作用范围的不同,有Session Storage和Local Storage两种,分别用于会话级别的存储(页面关闭即消失)和本地化存储(除非主动 删除,否则数据永远不会过期)在Android中可以手动开启DOMStorage(setDomStorageEnabled), 设置存储路径(setDatabasePath)Android中Webkit会为DOMStorage产生两个文件(my_path/localstorage/http_blog.csdn.net_0.localstorage和my_path/Databases.db)


在我们实际开发中也会出现其他情况。

清理缓存

我看了很多博客试了很多方法都没有成功,废话不多说,来看代码

 public void deleteFile(File file) { if (file.exists()) { if (file.isFile()) { file.delete(); } else if (file.isDirectory()) { File files[] = file.listFiles(); for (int i = 0; i < files.length; i++) { deleteFile(files[i]); } } file.delete(); } else { System.out.println("delete file no exists ");} }

调用deleteFile方法

                    File webviewCacheDir = new File(getActivity().getCacheDir().getParent()); //缓存路径//删除webview 缓存目录 if(webviewCacheDir.exists()){ deleteFile(webviewCacheDir); } android.os.Process.killProcess(android.os.Process.myPid()); 

注意: android.os.Process.killProcess(android.os.Process.myPid());
这句代码是杀死程序。为什么要加这句代码呢?原因是Local Storage缓存想要清除只清理缓存文件是远远不够的必须要杀死进程才可以。
希望对大家的开发用帮助

android webview清理缓存相关推荐

  1. android内核网络缓存,Android WebView cache 缓存 腾讯X5内核在线视频播放

    [实例简介] Android WebView cache 缓存 腾讯X5内核在线视频播放 [实例截图] [核心代码] Terry007 └── Terry007 ├── AndroidManifest ...

  2. android清理缓存功能吗,android实现清理缓存功能

    android之清理缓存实现,供大家参考,具体内容如下 一. 清理缓存首先要搞清楚清理哪些东西 1.app本身的功能比如录像,录音,更新都会产生文件,需要清理 2.app的默认缓存地址cache 二. ...

  3. Android WebView清除缓存,总有一个方法适合你

    一,缓存介绍 缓存分为:页面缓存和数据缓存 页面缓存: 指加载一个网页时的html.JS.CSS等页面或者资源数据. 数据缓存 : 数据缓存分为AppCache和DOM Storage两种. 一般清除 ...

  4. android webView的缓存机制和资源预加载

    android 原生使用WebView嵌入H5页面 Hybrid开发 一.性能问题 android webview 里H5加载速度慢 网络流量大 1.H5页面加载速度慢 渲染速度慢 js解析效率 js ...

  5. android 实现清理缓存功能

    很多App设置里面都会有清理缓存这个小功能,当我们app所浏览一些图片啊,或者信息,都会缓存起来,包括存在本地的一些数据,这些呢会使我们app占用的内存变大,但是会节省我们的流量使用,我们清理缓存后占 ...

  6. android app 清理缓存图片,支付宝APP怎么清理缓存 支付宝安卓版缓存清理方法

    当今社会支付方式已经越来越便捷化了,普通的现金支付方式已经逐渐被人们放弃,现在大部分朋友们都会使用支付宝APP进行手机移动支付.相信大家都知道,这款软件除了支付功能以外,还有许多其他功能,而这些功能往 ...

  7. android webview 图片缓存,WebView 图片离线缓存(含图片)

    自打去年十一来到掘金,就想着有一点一定会做 WebView 离线缓存,作为一个阅读类 app,不敢想象在没有离线缓存的情况下是怎么撑了这么久的

  8. android WebView清除缓存

    当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹,我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webvi ...

  9. Android Studio 清理缓存方法

    Android studio 有时找不到R文件. 导入的资源.布局 . jar包 等  . 可能是studio 缓存造成的 . 这是可以使用 1) clean project  清理项目 2) inv ...

最新文章

  1. centos6 搭建heartbeat
  2. 错误处理:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
  3. 我对北京印象之10年前后
  4. (转)SQL 优化原则
  5. 【C++深度剖析教程7】C++之类中的函数重载
  6. AfxGetMainWnd( )函数
  7. appender log4j 扩展_Log4j扩展使用--输出地Appender
  8. echarts折线图怎么从y轴开始_基于echarts的双y轴实时更新折线图
  9. python 中主线程结束 子线程还在运行么_「干货」python线程笔记
  10. gis 空间分析 鸟类栖息地选取_鸟类的栖息地选择
  11. 常用算法案例之贪心法(C语言)
  12. 高等代数——大学高等代数课程创新教材(丘维声)——3.4笔记+习题
  13. 社区养老管理系统开发满足老年人多样化、多层次的需求
  14. 通过java调用webservice服务详细案例一
  15. 网站服务器后缀名,服务器域名,域名后缀
  16. 微博html5版什么手机,搜狐微博推出全新手机HTML5触屏版
  17. GSM Sniffing入门之硬件篇
  18. 解惑一---大数据与Oracle数据库
  19. linux kafka常用命令
  20. .NET MEF托管可扩展框架

热门文章

  1. 车辆重识别:Flare-Aware Cross-modal Enhancement Network for Multi-spectral Vehicle Re-identification
  2. 建筑设计和绘图的CAD软件AutoCAD Architecture 2024版本在Windows系统的下载与安装配置
  3. Java包装类-Double包装类
  4. OpenCV之图像对比度、亮度值调整
  5. go语言有类似注解的东西吗_Go语言之GO 语言注释
  6. 接口自动化平台(一):antd + antd pro 安装和简介
  7. highside 介绍
  8. 今天不聊技术,谈谈“工程师“三个字
  9. 调PI时的过冲问题感悟
  10. android:paddingTop=“@dimen/activity_horizontal_margin“报错(报红)解决方法