Android清除WebView缓存

Android WebView清除缓存:一步步实现缓存清理功能 在开始清除WebView缓存之前,我们首先需要检查设备的网络连接状态。在Android应用开发中,WebView是一个强大的工具,可以在应用中展示网页内容。然而,有时候我们需要在WebView中清除缓存,以确保最新的内容能够正确地显示出来。这样,我们就完成了Android WebView的缓存清理功能的实现。通过检查网络连接状态、创建WebView实例、清除缓存以及重新加载网页内容,我们可以确保WebView中显示的内容是最新的。接下来,我们需要创建一个WebView实例,并加载需要显示的网页内容。 阅读详情

1. 前言

用过WebView的同学都清楚,WebView默认是会自动缓存网页资源的。虽然前端H5网页有自己一套缓存机制(不懂的同学,可以看看这篇文章 手把手教你构建 Android WebView 的缓存机制 & 资源预加载方案),但是在某些场景下,还是需要原生主动去做清除缓存操作,即清除WebView的缓存。大多数文章都会说,使用下列的方法就可以清除了。

new WebView(context).clearCache(true);

但实际上是这种清除方式,只是清除了一部分缓存而已。像Cookie,使用这种方式是清除不了的。

2. 解决方案

经过自己的摸索,整理出了一个有效的清除方式,具体代码如下:

/**
 * 清除缓存
 *
 * @param context 上下文
 */
public static void clearCache(Context context) {
    try {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // 清除cookie
            CookieManager.getInstance().removeAllCookies(null);
        } else {
            CookieSyncManager.createInstance(context);
            CookieManager.getInstance().removeAllCookie();
            CookieSyncManager.getInstance().sync();
        }

        new WebView(context).clearCache(true);

        File cacheFile = new File(context.getCacheDir().getParent() + "/app_webview");
        clearCacheFolder(cacheFile, System.currentTimeMillis());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private static int clearCacheFolder(File dir, long time) {
    int deletedFiles = 0;
    if (dir != null && dir.isDirectory()) {
        try {
            for (File child : dir.listFiles()) {
                if (child.isDirectory()) {
                    deletedFiles += clearCacheFolder(child, time);
                }
                if (child.lastModified() < time) {
                    if (child.delete()) {
                        deletedFiles++;
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return deletedFiles;
}

3. 验证

  • 调用上面clearCache方法后,可以重新打开网页,比较网页加载的速度
  • 使用Android Studio的DeviceFileExplorer工具,进入到“/dada/data/APP的包名”目录下,比较前后文件内容的变化,如下图所示
清除缓存前
清除缓存后

 

完整的demo可以查看 AndroidWebView。

 

如果想进一步交流和学习的同学,可以加一下QQ群哦!

Android实现WebView删除缓存的方法 主要介绍了Android实现WebView删除缓存的方法,实例分析了Android针对WebView操作缓存的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 立即下载

相关推荐

基于STM32的红外测温系统设计

为了实现本次的毕业设计,我搜集了大量的文献与资料,通过这些资料了解到红外测温的优点,与实现所需的基本器件,并设计了几个方案,最终选择了STM32作为主控芯片,为此还查阅了关于STM32的资料,在此次设计中采用的是MLX90614医用红外测温模块,通过查阅其数据手册了解其测量精度高且自带温度补偿,所以选择了该传感器作为红外测温模块,本次设计到此已经基本完成,硬件部分和软件部分的设计已基本完成。

weixin_112233的博客 1421

Android WebView清除缓存

/ 退出时调用此方法,移除绑定的服务,否则某些特定系统会报错。//清除cookie。

简单玩家丶的博客 2325

泰森多面体Voronoi 3D-V5.0 功能介绍

Abaqus Voronoi3D

qq_34840441的博客 3364

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

缓存介绍 缓存分为:页面缓存和数据缓存 页面缓存: 指加载一个网页时的html、JS、CSS等页面或者资源数据。 数据缓存 : 数据缓存分为AppCache和DOM Storage两种。 一般清除指的是数据缓存; 注意:以下清理缓存的方法,没有区分是那种缓存; 清除数据库缓存 context.deleteDatabase("webview.db"); context.deleteDatabase("webviewCache.db"); 清楚历史 webView.clearHistor

ezconn的博客 1万+

FPGA以太网接口设计避坑指南:GMII与RGMII时序转换的三种实现方案对比

本文深入解析FPGA以太网接口设计中GMII与RGMII时序转换的三种实现方案,包括Xilinx官方IP核、手工原语逻辑和开源方案gmii_to_rgmii。通过对比分析各方案的优缺点和适用场景,为工程师提供技术选型指南,帮助避免常见设计陷阱,提升高速网络设备开发的效率和可靠性。

weixin_42570484的博客 384

青藏高原冻土数据实战:如何用QGIS分析1961-2020年冻土退化趋势(附完整操作步骤)

本文详细介绍了如何使用QGIS分析1961-2020年青藏高原冻土退化趋势,包括数据准备、预处理、时空分析和模型验证等全流程操作。通过TTOP模型和Stefan方程,揭示了冻土退化的空间差异和海拔依赖性,为环境研究提供科学依据。

weixin_29276847的博客 127

Android 之 WebView 缓存问题

Android 之 WebView 的加载缓存问题

weixin_42602900的博客 2482

wvp gb28181 pro 平台国标级连功能说明

国标28181不同平台之间支持两种连接方式,平级和上下级,WVP目前支持向上级级联。

zengliguang的专栏 3887

安卓使用WebView清除缓存

Android 清除WebView缓存 最近项目中需要用WebView显示内容,需要使用JavaScript去交互,但是每次加载都加载到了缓存的数据,这里记录一下如何去清除WebView缓存。 首先要了解一些概念。WebView的缓存可以分为页面缓存和数据缓存:1,页面缓存: >指加载一个网页时的html、JS、CSS等页面或者资源数据。 >这些缓存资源是由于浏览器的行为而产生,开发者只能通过配

liwei123liwei123的博客 2万+

Z-Image Turbo随机性增强插件的下载教程及使用方法 z-image生成图像太相似怎么办 Z-Image Turbo 整合包下载

Z-Image Turbo 是出了名的“seed 不敏感”,非常难做多样化图像创作。ComfyUi-ConditioningNoiseInjection 插件通过在conditioning(提示词编码)阶段加入可控噪声,成功解决了 Turbo 随机性不足的问题。它不仅能让 Turbo 产生更丰富的构图差异,还能保持主题稳定,是目前我测试过最有效的 Turbo 随机性增强工具。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1978

RK3576 USB3.0 DWC3控制器调试:PHY初始化失败排查指南

DWC3 是 Synopsys 公司推出的 USB3.0/3.1 控制器 IP,支持双角色(DRD)模式,可配置为 Host、Device 或 OTG。

小灰灰的博客 1177

android webview 清除缓存,android 读取WebView缓存及清理WebView缓存

WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即appcache)。1.缓存的分类:首先要说的一点是缓存的分类,我们缓存的数据分为:页面缓存和数据缓存页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由>于浏览器的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地影响到>这些缓存数据。而缓存的索引放...

weixin_39568926的博客 2012

ESP8266-Arduino网络编程实例-异步TCP客户端

本次实例将使用ESPAsyncTCP库实现一个简单的客户端。

视觉与物联智能 1741

android WebView清除缓存

当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹,我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webviewCache文件夹下.WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即AppCache)。一、网页缓存1、缓存构成 /data/data/package_name

Jhone_csdn的专栏 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android webview 清除缓存,Android实现WebView删除缓存的方法

本文实例讲述了Android实现WebView删除缓存的方法。分享给大家供大家参考。具体如下:删除保存于手机上的缓存:// clear the cache before time numDaysprivate int clearCacheFolder(File dir, long numDays) {int deletedFiles = 0;if (dir!= null && di...

weixin_33564130的博客 2091

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android WebView清除缓存的有效方法与实践指南

本文详细介绍了Android WebView缓存清除的多种方法及其实现。主要内容包括:1. WebView缓存类型分析(网页缓存、Cookie、数据库等);2. 三种清除方法(完全清除、选择性清除、缓存策略控制)及示例代码;3. 最佳实践(清除时机选择、权限配置、兼容性处理);4. 常见问题解决方案(加载变慢、登录状态丢失等)。文章提供了完整的Activity实现代码,并强调应根据业务需求合理选择清除策略,同时考虑不同Android版本的兼容性差异。

xingfuyisheng的专栏 2万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

android webview 清除缓存,Android开发WebView删除缓存的方法

释放双眼,带上耳机,听听看~!当浏览器加载HTML时,我们在数据/应用程序包下生成两个数据库和缓存文件夹,我们请求的URL记录存储在WebViewCache中,下文是技术狗小编为大家整理的Android实现WebView删除缓存的方法,希望对你学习这方面有所帮助。删除保存于手机上的缓存:// clear the cache before time numDaysprivate int clearC...

weixin_39958019的博客 907

android webview 清除缓存,Android webView 缓存处理

一 缓存模式LOAD_CACHE_ONLY: //不使用网络,只读取本地缓存数据,LOAD_DEFAULT://根据cache-control决定是否从网络上取数据,LOAD_CACHE_NORMAL://API level 17中已经废弃, 从API level 11开始作用同- - LOAD_DEFAULT模式,LOAD_NO_CACHE: //不使用缓存,只从网络获取数据,LOAD_CAC...

weixin_42342206的博客 2031

Android Webview清除缓存和Cookie

最近项目中遇到用webView显示内容的需求.

ronaldong99的专栏 1万+

安卓WebView全套分析及方法用法,清除缓存,销毁防止泄露等等

**安卓WebView全套分析及方法用法,清除缓存,销毁防止泄露等等 package com.cs.webviewdemo import android.graphics.Bitmap import android.net.Uri import android.net.http.SslError import android.os.Build import androidx.appcompat.a...

wdx_1136346879的博客 2463

转载:安卓使用WebView清除缓存

Android 清除WebView缓存 最近项目中需要用WebView显示内容,需要使用JavaScript去交互,但是每次加载都加载到了缓存的数据,这里记录一下如何去清除WebView缓存。 首先要了解一些概念。 WebView的缓存可以分为页面缓存和数据缓存: 1,页面缓存: &gt;指加载一个网页时的html...

record_my_world的博客 2391

Android清除webview缓存

File file = CacheManager.getCacheFileBaseDir();    if (file != null && file.exists() && file.isDirectory()) {     for (File item : file.listFiles()) {      item.delete();     }     file.delete();

842

Android WebView缓存完全清除指南(含内核差异)

本文将全面解析WebView缓存清理方法,并针对内核差异提供针对性解决方案,帮助开发者彻底解决缓存问题。在Android设置中,进入应用管理,找到WebView或宿主应用,选择“清除缓存”即可。若需代码实现,可调用WebView的clearCache方法,但需注意该方法仅清除内存缓存,持久化缓存需结合deleteDatabase和deleteFile等操作。例如,使用Android的Storage Access Framework遍历缓存目录,或集成ACRA等工具监控缓存大小并定期清理。

cvwgab_963的博客 201
上一篇: 大龄程序员的未来在何方
下一篇: Android WebView播放视频并支持全屏
Fantasy丶Lin
博客等级 码龄11年 92粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值