为什么';默认情况下,android Webview是否检查缓存?

为什么';默认情况下,android Webview是否检查缓存?,android,caching,android-webview,Android,Caching,Android Webview,我有一个使用应用程序缓存的webview。为了加载/缓存页面,我启动了连接到网络的应用程序。现在,在关闭wifi(和3g-无网络连接)并启动应用程序后,我看到了“android无法加载页面”页面。奇怪的是,如果我重新加载webview,它会从缓存中加载页面。如果无法连接到网络,为什么不从缓存加载此页面 我正在使用带有Cache.manifest的HTML5应用程序缓存。以下是启用此功能的我的webview代码: webview.getSettings().setDomStorageEnabled

我有一个使用应用程序缓存的webview。为了加载/缓存页面,我启动了连接到网络的应用程序。现在,在关闭wifi(和3g-无网络连接)并启动应用程序后,我看到了“android无法加载页面”页面。奇怪的是,如果我重新加载webview,它会从缓存中加载页面。如果无法连接到网络,为什么不从缓存加载此页面

我正在使用带有Cache.manifest的HTML5应用程序缓存。以下是启用此功能的我的webview代码:

webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setAppCacheMaxSize(1024*1024*8);
webview.getSettings().setAppCachePath("/data/data/com.my.package/cache");
webview.getSettings().setAllowFileAccess(true);
webview.getSettings().setAppCacheEnabled(true);
我试着加入:

weview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 

但是它没有帮助。

检查您请求的URL是否不是重定向。如果是,缓存也将指向该重定向,WebView将不会从缓存读取结果重定向


我花了一些时间才发现我的情况就是这样。

当你关闭wifi和/或3g时,你现在是否正在杀死应用程序的实例,除非你主动检查,否则它不会知道从缓存加载,因为它已经从网络加载,这就是为什么重新加载webview时它会正确加载。@JaredBurrows我不明白你的意思,但流程是这样的:1。从网络加载应用程序。1a。页面被缓存。2.杀死应用程序。3.终止wifi(设备上没有3g)4。加载应用程序。4a。页面显示“Android无法加载页面”5。刷新网络视图。5a。页面从缓存正确加载您如何刷新webview?只需再次调用
loadUrl
按钮即可。这与在
onCreate
中进行的调用完全相同。您可以始终检查网络连接,然后重新加载,或者在实例终止后在onResume中重新加载?