2012-02-03 75 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