Android Webview-未调用onPageFinished

Android Webview-未调用onPageFinished,android,caching,webview,Android,Caching,Webview,在我的应用程序中,我想在后台缓存一个带有隐藏webview的WebPage,同时用户可以看到另一个webview并加载另一个url。 我在onResume中启动缓存。以下是代码片段: 一,。简历: @Override public void onResume() { new LibraryCacher().startCaching(this); //some more code... } 二,。图书馆缓存: public class Librar

在我的应用程序中,我想在后台缓存一个带有隐藏webview的WebPage,同时用户可以看到另一个webview并加载另一个url。 我在onResume中启动缓存。以下是代码片段:

一,。简历:

   @Override
   public void onResume() {
      new LibraryCacher().startCaching(this);
      //some more code...
   }
二,。图书馆缓存:

   public class LibraryCacher extends BasicClass {

      public LibraryCacher () {}

      public void startCaching(Context context) {
         getLogger().debug("startCaching()");

         if (NetworkHandler.isOnline(context) == false) {
            getLogger().info("We are offline, no caching");
            return;
         }
         final String URL_TO_CACHE = "http://myUrl.com";
         WebView w = new WebView(context);
         w.setVisibility(View.GONE);
         WebSettings webset = w.getSettings();
         webset.setJavaScriptEnabled(true);
         webset.setDomStorageEnabled(true);
         webset.setDatabaseEnabled(true);
         webset.setJavaScriptCanOpenWindowsAutomatically(true);
         webset.setSupportMultipleWindows(true);
         webset.setAppCacheEnabled(true);
         webset.setLoadsImagesAutomatically(true);
         webset.setAppCachePath(w.getContext().getCacheDir().getAbsolutePath());
         webset.setAllowFileAccess(true);
         webset.setCacheMode(WebSettings.LOAD_DEFAULT);

         w.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                getLogger().debug(url + " caching...");

            }
           @Override
           public void onPageFinished(WebView view, String url) {
                 super.onPageFinished(view, url);

                 getLogger().debug(url + "cached");
           }
        });
        w.setWebChromeClient(new WebChromeClient());
        getLogger().debug("load Url");
        w.loadUrl(URL_TO_CACHE);
      }
   }
在FIRST-CACHE-TRY应用程序第一次启动时,logcat如下所示:

起动 加载Url 缓存。。。 之后,我把应用程序放在后台,然后继续。因此,在SECOND-CACHE-TRY logcat中,它是这样的:

起动 加载URL 缓存。。。 缓存 我的问题:

为什么webview在第一次尝试时不调用其方法onPageFinished

编辑:

如果我调用

new LibraryCacher().startCaching(this); 
在另一个Web视图的onPageFinished中,该视图对用户可见,并同时加载另一个url。
有人知道为什么吗

android中的网络视图似乎有一些共享状态。就我而言,onPageFinished从未被调用,因为我使用了:

@Override
public void onPause() {
    webView.pauseTimers();
}

在完全不同的webview上,在不同的活动中。

您必须重新开始执行指定的功能。尝试对onCreate或onStartNow执行此操作,会调用onpageStarted方法,但不会调用onPageFinished方法。我编辑了我的帖子。@JeremyMiller:onCreate对我来说是没有选择的,因为我想在应用程序在后台的特定时间段后刷新缓存