我正在尝试使用服务中的webView使用方法“saveWebArchive”存储网页,但是我收到一条错误,指出“在线程上调用了一个WebView方法'IntentService [OffLineSaverService]'。所有WebView方法都必须在UI线程上调用。未来版本的WebView可能不支持在其他线程上使用“。
这是公平的,但......有什么方法可以做到吗?
public class OffLineSaverService extends IntentService {
public OffLineSaverService() {
super("OffLineSaverService");
}
@Override
public void onCreate() {
super.onCreate();
webViewSaver = new WebView(getApplicationContext());
}
@Override
protected void onHandleIntent(Intent intent) {
Log.w("Service", "Service started");
webViewSaver.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
final String fileName = context.getExternalFilesDir(null) + File.separator + "myfile.html";
view.saveWebArchive(fileName);
});
webViewSaver.loadUrl("http://www.example.com");
}
}
在该代码中,我只保存一个页面,但想法是通过链接列表并保存所有页面。
我不确定我是否可以使用runOnUiThread()方法,但如果我这样做,我会重载Ui线程吗?
有什么想法吗?