当html内容发生变化时,如何使webview自动刷新其缓存?

时间:2015-06-16 07:04:07

标签: android caching webview

在我的Android应用程序中,我设置了

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

为webview启用缓存。问题是,当Web内容发生变化(我不知道)时,它仍然使用旧的缓存内容。 如何在不使用缓存的情况下更改在线Web内容时如何使其自动重新缓存内容?

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:3)

我相信你无法确定网页内容是否有所改变。

但是,当你启用webview缓存时,它会自动为webview缓存提供一个到期日,这意味着,如果webView缓存过期,它将再次加载网页。如果您使用WebSetting.LOAD_DEFAULT

,则可以执行此操作

如果您觉得html页面的内容可能会更频繁地更改,那么您应该不使用WebSetting.LOAD_CACHE_ELSE_NETWORK,因为根据doc:

public static final int LOAD_CACHE_ELSE_NETWORK

Use cached resources when they are available, even if they have expired. Otherwise load resources from the network. 

这将加载html页面的缓存版本,即使它已过期。

答案 1 :(得分:2)

有办法检查服务器上的内容是否已更改。 试试FCM。在每个内容提交上发送通知给每个应用程序。 然后在消息接收方法中清除您的webview缓存。 这样,只要服务器上的内容发生变化,用户就会看到更新的内容。 我正在使用这种方法并为我工作。