androidwebview缓存时间(webview 缓存)

今天给各位分享androidwebview缓存时间的知识,其中也会对webview 缓存进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

android中 如何清理webview缓存?

一、清除cookie

public static void clearCookies(Context context) {

// Edge case: an illegal state exception is thrown if an instance of

// CookieSyncManager has not be created. CookieSyncManager is normally

// created by a WebKit view, but this might happen if you start the

// app, restore saved state, and click logout before running a UI

// dialog in a WebView -- in which case the app crashes

@SuppressWarnings("unused")

CookieSyncManager cookieSyncMngr =

CookieSyncManager.createInstance(context);

CookieManager cookieManager = CookieManager.getInstance();

cookieManager.removeAllCookie();

}

这是facebook sdk的源码,我不知道第一句到底起了什么作用?

二、清除webview缓存,查看root过的手机data下的文件,会发现有这个东西:webview命名的东西

删除保存于手机上的缓存.

// clear the cache before time numDays

private int clearCacheFolder(File dir, long numDays) {

int deletedFiles = 0;

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

try {

for (File child:dir.listFiles()) {

if (child.isDirectory()) {

deletedFiles += clearCacheFolder(child, numDays);

}

if (child.lastModified() numDays) {

if (child.delete()) {

deletedFiles++;

}

}

}

} catch(Exception e) {

e.printStackTrace();

}

}

return deletedFiles;

}

打开关闭使用缓存

//优先使用缓存:

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");

发现这个问题,一个朋友在iteye上问的:

Android的CookieManager只提供了removeAllCookies方法,用来删除所有的cookie,有什么办法只删除和特定url关联的cookie呢?本来打算使用setCookie(url, value)将指定url关联的cookie设为空串,但试了一下发现这个方法只是在已有的基础上继续添加cookie,并不能重置已有的cookie。

有朋友给打答案:

/**

* 同步一下cookie

*/

public static void synCookies(Context context, String url) {

CookieSyncManager.createInstance(context);

CookieManager cookieManager = CookieManager.getInstance();

cookieManager.setAcceptCookie(true);

cookieManager.removeSessionCookie();//移除

cookieManager.setCookie(url, cookies);//指定要修改的cookies

CookieSyncManager.getInstance().sync();

}

androidwebview缓存时间(webview 缓存),androidwebview缓存时间,信息,源码,文章,第1张

android webview清除缓存

删这文件好像是需要Root权限的;

想清楚缓存试试下面的方法

private void removeCookie() {

CookieSyncManager.createInstance(this);

CookieManager cookieManager = CookieManager.getInstance();

cookieManager.removeAllCookie();

CookieManager.getInstance().removeSessionCookie();

CookieSyncManager.getInstance().sync();

CookieSyncManager.getInstance().startSync();

}

Android:最全面的 Webview 详解

WebView是一个基于webkit引擎、展现web页面的控件。

一般来说Webview可单独使用,可联合其子类一起使用,所以接下来,我会介绍:

常见用法:Back键控制网页后退

配置步骤1:添加访问网络权限 (AndroidManifest.xml)

配置步骤2:生成一个WebView组件(有两种方式)

配置步骤3:进行配置-利用WebSettings子类 (常见方法)

常见用法:设置WebView缓存

注意: 每个 Application 只调用一次 WebSettings.setAppCachePath(),WebSettings.setAppCacheMaxSize()

常见方法1:shouldOverrideUrlLoading()

常见方法2:onPageStarted()

常见方法3:onPageFinished()

常见方法4:onLoadResource()

常见方法5:onReceivedError()

常见方法6:onReceivedSslError()

常见方法1: onProgressChanged()

常见方法2: onReceivedTitle()

具体请看我写的文章 Android WebView与JS的交互方式 最全面汇总

3.4.1 不在xml中定义 Webview ,而是在需要的时候在Activity中创建,并且Context使用 getApplicationgContext()

3.4.2 在 Activity 销毁( WebView )的时候,先让 WebView 加载null内容,然后移除 WebView,再销毁 WebView,最后置空。

步骤1:添加访问网络权限

AndroidManifest.xml

步骤2:主布局

activity_main.xml

步骤3:根据需要实现的功能从而使用相应的子类及其方法(注释很清楚了)

MainActivity.java

android 怎样获取webview的缓存

请求的url记录是保存在webviewCache.db,而url的内容是保存在webviewCache文件夹下.

为了便于理解,接下来模拟一个案例,定义一个html文件,在里面显示一张图片,用WebView加载出来,然后再试着从缓存里把这张图片读取出来并显示。

第一步:新建一个Android工程命名为WebViewCache.目录结构如下:

第二步:在assets目录下新建一个html文件,命名为index.html

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

html

head

titleWebViewCacheDemo/title

meta http-equiv="keywords" content="keyword1,keyword2,keyword3"

meta http-equiv="description" content="this is my page"

meta http-equiv="content-type" content="text/html; charset=UTF-8"

/head

body

img src=""/

/body

/html

第三步:修改main.xml布局文件,一个WebView控件一个Button(点击加载缓存图片用),代码如下:

?xml version="1.0" encoding="utf-8"?

LinearLayout xmlns:android=""

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent"

WebView android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/webView"/

Button android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:text="从缓存读取图片"

android:id="@+id/button"/

/LinearLayout

第四步:修改主核心程序WebViewCacheDemo.java,这里我只加载了index.html文件,按钮事件暂时没写,代码如下:

package com.ljq.activity;

import java.io.File;

import java.io.FileInputStream;

import android.app.Activity;

import android.app.Dialog;

import android.app.AlertDialog.Builder;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.os.Bundle;

import android.view.View;

import android.webkit.WebView;

import android.widget.Button;

import android.widget.ImageView;

public class WebViewActivity extends Activity {

private WebView webView;

private static final String url="";

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

webView=(WebView)findViewById(R.id.webView);

webView.loadUrl(url);

}

}

第五步:在AndroidMainifest.xml文件中加访问网络的权限:

uses-permission android:name="android.permission.INTERNET" /

关于androidwebview缓存时间和webview 缓存的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

1、本网站名称:源码村资源网
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » androidwebview缓存时间(webview 缓存)
您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论