2012-02-03 74 views
25

哪一种方法可以更快速地在Android webview中加载移动网页和非移动网页;加载缓存或根本不加载?Android中的缓存webview

什么是建议风格来加载?

现在,当我没有加载缓存时,所有非移动网站的加载速度都比我在本机浏览器中加载时慢得多。

回答

32

不要使用这些:

viewer.getSettings().setAppCacheMaxSize(1024*1024*8); 
viewer.getSettings().setAppCachePath("/data/data/com.your.package.appname/cache"‌​);  
viewer.getSettings().setAppCacheEnabled(true); 

这些都无关,与默认的WebView内部缓存。 Appcache是​​一个完全不同的功能,可以让您无需连接互联网即可运行网站。它不太好,可能你不想使用它。

用设置:viewer.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT)就够了。

+6

你可以通过链接描述AppCache的一些文档来支持它吗?鉴于'LOAD_DEFAULT'中有“default”这个词,你的答案中最后一行肯定不会做任何事情,除非你明确地为其他地方设置了一个不同的值。 – 2014-01-09 12:19:27

+2

setAppCacheMaxSize已从api 18弃用。http://developer.android.com/reference/android/webkit/WebSettings.html#setAppCacheMaxSize(long)] – 2014-05-21 06:53:08

+0

@ ed-hinchliffe很难从Google本身找到关于此的良好文档,但他们的确在Google Chrome WebView上从这篇文章的“离线工作”部分中引用了此文档https://docs.webplatform.org/wiki/tutorials/appcache_beginner:https://developer.chrome.com/multidevice /安卓/概述。你的答案也是正确的,他的回答最后一行什么也不做。 – Nilzor 2015-04-16 07:12:08

13

当然,缓存的方法应该更快。这就是缓存在那里的确切原因。

但你应该没问题,除非你专门禁用了webview缓存。如果你不这样做 - 它会默认使用缓存。

+11

谢谢。这种智能风格是否缓存或有这个问题? viewer.getSettings()setAppCacheMaxSize(1024 * 1024 * 8)。 viewer.getSettings()。setAppCachePath(“/ data/data/com.your.package.appname/cache”); viewer.getSettings()。setAppCacheEnabled(true); viewer.getSettings()。setCacheMode(WebSettings.LOAD_DEFAULT); – Eljas 2012-02-03 23:10:06

+1

是的,我没有看到任何错误(我假设你把实际的代码:)真正的包名称)。如果有疑问,您可以随身携带大小并进行一些测试,以便查看哪种最适合您正在加载的内容类型。如果页面很大,并且您打算加载很多不同的页面 - 可能需要比1Mb更大的缓存。如果他们大部分是文本,并且您的应用只需要显示少量文本,那么使用当前设置就可以了。 – 2012-02-06 12:58:06

+0

此外,如果答案是令人满意的,请考虑将其标记为接受:) – 2012-02-07 15:49:49