我想在Android中预加载网页。该网页包含文本和图形元素。该网页将来会在尚未创建的活动中显示。
据我所知,例如WebView必须绑定到Activity,因此无法使用WebView执行此任务。
任何人都有任何建议,不涉及解析html页面并“手动”下载所有元素?
答案 0 :(得分:13)
根据android的文档:出于明显的安全原因,您的应用程序有自己的缓存,cookie存储等 - 它不共享浏览器应用程序的数据。
因此,我们可以通过以下方式巧妙地利用上述信息:
每当您想要开始加载您的网站时,请创建一个新的WebView对象并从中请求该URL。代码看起来像这样:
WebView view = new WebView(context);
view.loadUrl(myBigWebSite);
Android将缓存该webview数据,当您从另一个活动请求loadUrl时,它应该已经加载。
// in your WebView activity
myWebView.loadUrl(myBigWebSite);
有关webView的更多信息,请访问文档页面:WebView doc
答案 1 :(得分:2)
您可以将所有必需的文件(图像等)下载到网络线程上的某个文件夹中,然后使用类似
的内容webview.loadUrl("file:///my_cached_folder/index.html");
如果引用并存在,也将从此文件夹中选取图像。阅读有关在webview here上打开本地文件的信息。