Android WebView的缓存

网友投稿 370 2022-11-03


Android WebView的缓存

各位读者大家好,最近比较忙好久没有写blog了,今天挤点时间和大家分享一下​​Android​​中WebView的缓存。我们在项目中也时常会用到 WebView这个控件,当我们加载html时候,会在我们data/应用package下生成database与cache两个文件夹如下图如示:

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

为了让大家更容易理解,我做一个简单的例子,我定义一个html文件,在里面加载了一个淘宝的衣服图片的url,用WebView加载出来,然后再试着从缓存里把这张图片读取出来。

下面大家可以按照我的步骤一步一步来实践:

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

第二步:在assets目录下新建一个html文件,命名为index.html,(这里加载了一个淘宝的图片):

​​< ?xml version="1.0" encoding="utf-8"?>2. < LinearLayout xmlns:android="android:orientation="vertical"4. android:layout_width="fill_parent"5. android:layout_height="fill_parent"6. >7. < WebView8. android:id="@+id/webview"9. android:layout_width="fill_parent"10. android:layout_height="wrap_content"11. />12. < Button13. android:id="@+id/button"14. android:layout_width="fill_parent"15. android:layout_height="wrap_content"16. android:text="从缓存里读取图片"17. />18. < /LinearLayout>

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

XML/HTML代码

1. package com.tutor.webviewcache;2. import android.app.Activity;3. import android.os.Bundle;4. import android.view.View;5. import android.view.View.OnClickListener;6. import android.webkit.WebView;7. import android.widget.Button;8. public class WebViewCacheDemo extends Activity {9. 10. private WebView mWebView;11. //private Button mButton;12. url = "file:///android_asset/index.html";13. @Override14. public void onCreate(Bundle savedInstanceState) {15. super.onCreate(savedInstanceState);16. setContentView(R.layout.main);17. 18. mWebView19. mWebView.loadUrl(url);20. 21. mButton22. // mButton.setOnClickListener(listener);23. }24. }

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

XML/HTML代码

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

运行效果如下:

此时我们在WebViewCache.db里的cache.table里多了一条记录如下图所示:

在cache/webviewCache/目录下多了一个10d8d5cd文件,刚好和cache.table里的filepath,我们可以断定这个文件就是我们从网上拽下来的图片:

为了验证猜想,我给Button增加事件响应,就是弹出Dialog,里面加载缓存的图片,完整代码如下:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring MVC的参数绑定和返回值问题
下一篇:风险等级疫情查询API(风险等级疫情查询上海)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~