Javascript Android WebView问题:onPageFinished的替代方案,如何管理缓存

Javascript Android WebView问题:onPageFinished的替代方案,如何管理缓存,javascript,android,html,webview,Javascript,Android,Html,Webview,我有一个利用WebView的Android应用程序。我们将其设置为在应用程序打开时显示启动页面,然后在加载页面时启动页面。以下是相关代码: browser.setWebViewClient(new BrowserClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url);

我有一个利用WebView的Android应用程序。我们将其设置为在应用程序打开时显示启动页面,然后在加载页面时启动页面。以下是相关代码:

browser.setWebViewClient(new BrowserClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            // Work around for WebView onPageFinished called twice                
if (flag == true) {
                    browser.setVisibility(View.VISIBLE);
                    splashImage.setVisibility(View.INVISIBLE);
                    pageLoader.setVisibility(View.INVISIBLE);
                } else {
                    flag = true;
                }
            }
        });
问题是,在启动页面出现和关闭之间通常会有很大的延迟——这不是页面加载造成的延迟。(意思是,启动页面在页面加载后不会被移除。)我猜这是因为当页面完全加载时,包括所有脚本在内的onPageFinished会被触发,有时会被延迟(例如,广告)

所以,问题是,有没有其他方法可以检测页面何时已完全加载?或者,更好的是,是否可以检测到折叠上方的内容何时加载(即无需滚动即可查看的内容)

第二个问题与WebView处理缓存的方式有关。有时候,我看到WebView显示的是过时的页面——这些页面已经在我的网站上更新过了。如何强制WebView检查/重新验证每个页面上的页面加载或按后退按钮,以便不显示过时的内容?我不一定要完全禁用WebView缓存,因为拥有缓存是有价值的。我只是不想要陈旧的内容

谢谢