Java WebView缓存的后台预加载
我想用internet上的网页预加载WebView的缓存。这需要异步完成,并隐藏起来,以免干扰其他UI交互。预加载的目的是,如果通过可选的按钮点击方式显示WebView,则避免后续的网络调用(最终是为了更快地显示) 该网页包含Javascript和AJAX,因此我认为使用HttpClient之类的东西预加载缓存是行不通的。我还研究了在异步任务中使用WebView的loadUrl(),但我发现这与主UI线程冲突Java WebView缓存的后台预加载,java,android,webview,android-webview,Java,Android,Webview,Android Webview,我想用internet上的网页预加载WebView的缓存。这需要异步完成,并隐藏起来,以免干扰其他UI交互。预加载的目的是,如果通过可选的按钮点击方式显示WebView,则避免后续的网络调用(最终是为了更快地显示) 该网页包含Javascript和AJAX,因此我认为使用HttpClient之类的东西预加载缓存是行不通的。我还研究了在异步任务中使用WebView的loadUrl(),但我发现这与主UI线程冲突 有没有类似情况的人找到了完成后台预加载/缓存的方法?WebView默认情况下在单独的线
有没有类似情况的人找到了完成后台预加载/缓存的方法?
WebView
默认情况下在单独的线程中加载数据,因此无需使用AsyncTask。只需创建一个隐藏的WebView并调用loadUrl()
如果要预加载多个URL,可以使用WebViewClient
和覆盖onPageFinished()
来检测第一个URL何时完成。使用完WebView
后,请确保删除对它的引用,以便对其进行垃圾收集
最后,如果要确保可见的WebView
始终使用url的缓存版本(如果可用),可以调用:
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK).
你找到这个了吗?