android应用缓存清除的方法

u011859089 2013-08-30 02:59:57
以下方法为网上找到的方法:

一、

如何删除项目的缓存:

getCacheDir()能够得到当前项目的缓存地址

在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/应用package 目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache 文件夹下

打开关闭使用缓存,一共有五个种类

//优先使用缓存:

WebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

//不使用缓存:

WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

在退出应用的时候加上如下代码


 File file = CacheManager.getCacheFileBaseDir(); 

if (file != null && file.exists() && file.isDirectory()) {

for (File item : file.listFiles()) {

item.delete();}

file.delete();}

context.deleteDatabase("WebView.db");

context.deleteDatabase("WebViewCache.db");

File file = CacheManager.getCacheFileBaseDir();

if (file != null && file.exists() && file.isDirectory()) {

for (File item : file.listFiles()) {

item.delete();}

file.delete();}

context.deleteDatabase("WebView.db");

context.deleteDatabase("WebViewCache.db");

二、


我们在做软件时,当程序里使用了webview,就会缓存了很多东西,所以要清除一下,才能让软件跑的更快。实际上是清除data文件夹下面的cache,以及databases文件夹下面的东西。

用下面代码去处理,可以把两个文件夹下面的东西删除


clearCacheFolder(BaseActivity.this.getCacheDir(), System.currentTimeMillis()); 
BaseActivity.this.deleteDatabase("webview.db");

BaseActivity.this.deleteDatabase("webviewCache.db");

clearCacheFolder(BaseActivity.this.getCacheDir(), System.currentTimeMillis());
BaseActivity.this.deleteDatabase("webview.db");

BaseActivity.this.deleteDatabase("webviewCache.db");
被调用的方法:


private int clearCacheFolder(File dir, long numDays) {

int deletedFiles = 0;

if (dir!= null && dir.isDirectory()) {

try {

for (File child:dir.listFiles()) {
LogUtlis.i("info", "child=========="+child.getName());
if (child.isDirectory()) {

deletedFiles += clearCacheFolder(child, numDays);

}

if (child.lastModified() < numDays) {

if (child.delete()) {

deletedFiles++;

}

}

}

} catch(Exception e) {

e.printStackTrace();

}

}

return deletedFiles;

}

private int clearCacheFolder(File dir, long numDays) {

int deletedFiles = 0;

if (dir!= null && dir.isDirectory()) {

try {

for (File child:dir.listFiles()) {
LogUtlis.i("info", "child=========="+child.getName());
if (child.isDirectory()) {

deletedFiles += clearCacheFolder(child, numDays);

}

if (child.lastModified() < numDays) {

if (child.delete()) {

deletedFiles++;

}

}

}

} catch(Exception e) {

e.printStackTrace();

}

}

return deletedFiles;

}


以上是本文关于android应用缓存清除的方法的详细讲解,希望本文对广大安卓开发者有所帮助,感谢阅读本文。更多安卓技术问题欢迎加群探讨:278744577,验证码:cs,不写验证不予通过哟~
...全文
691 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MR__P 2013-11-02
  • 打赏
  • 举报
回复
缓存文件大小(new File(path)).length();
myser 2013-11-02
  • 打赏
  • 举报
回复
u012685773 2013-11-02
  • 打赏
  • 举报
回复
有没有获取缓存文件大小的方法?
knxw0001 2013-09-03
  • 打赏
  • 举报
回复

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧