我使用的Android应用中网页视图,我需要防止网页视图的缓存。
不幸的是,看起来这看似简单的目标几乎是不可能实现的。 我已经使出解决的办法是使缓存每个页面加载时间清除了onPageFinished事件而执行webview.clearCache(真)。 有一些问题...
我注意到,作为高速缓存增长就变得非常耗时的clearCache方法来执行。 有时,如果执行clearCache,然后切换到包含不同的WebView不同的活动,但网页流量不会因为它仍然在以前的clearCache操作完成等待加载几秒钟。
更糟糕的是后续调用clearCache的执行时间似乎并不之后缓存已被清除,以减少。 如果调用clearCache需要3秒钟即可完成,然后我立即打电话给clearCache第二次,那么我会希望clearCache第二次调用几乎立即完成。 但是,这不是我经历; 我遇到那个对clearCache第二个电话仍然需要约3秒钟。
任何人都经历吗? 有没有什么办法来提高性能? 等待2-3秒为一个网页视图加载(从本地文件系统)是可怕的。
编辑:
这是我真正清除缓存最佳替代品。 它更多或更少的工作,但是这有点片状,我不喜欢它(写在单C#)100%:
public class NoCacheWebClient : WebViewClient
{
string previous;
public override void OnPageStarted(WebView view, string url, Android.Graphics.Bitmap favicon)
{
base.OnPageStarted(view, url, favicon);
if (!string.Equals(previous, url))
{
previous = url;
view.Reload(); //re-load once to ignore cache
}
else
{
previous = null;
}
}
}