Java WebView缓存的后台预加载

Java WebView缓存的后台预加载,java,android,webview,android-webview,Java,Android,Webview,Android Webview,我想用internet上的网页预加载WebView的缓存。这需要异步完成,并隐藏起来,以免干扰其他UI交互。预加载的目的是,如果通过可选的按钮点击方式显示WebView,则避免后续的网络调用(最终是为了更快地显示) 该网页包含Javascript和AJAX,因此我认为使用HttpClient之类的东西预加载缓存是行不通的。我还研究了在异步任务中使用WebView的loadUrl(),但我发现这与主UI线程冲突 有没有类似情况的人找到了完成后台预加载/缓存的方法?WebView默认情况下在单独的线

我想用internet上的网页预加载WebView的缓存。这需要异步完成,并隐藏起来,以免干扰其他UI交互。预加载的目的是,如果通过可选的按钮点击方式显示WebView,则避免后续的网络调用(最终是为了更快地显示)

该网页包含Javascript和AJAX,因此我认为使用HttpClient之类的东西预加载缓存是行不通的。我还研究了在异步任务中使用WebView的loadUrl(),但我发现这与主UI线程冲突


有没有类似情况的人找到了完成后台预加载/缓存的方法?

WebView
默认情况下在单独的线程中加载数据,因此无需使用AsyncTask。只需创建一个隐藏的WebView并调用
loadUrl()

如果要预加载多个URL,可以使用
WebViewClient
和覆盖
onPageFinished()
来检测第一个URL何时完成。使用完
WebView
后,请确保删除对它的引用,以便对其进行垃圾收集

最后,如果要确保可见的
WebView
始终使用url的缓存版本(如果可用),可以调用:

webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK).
你找到这个了吗?