使用webView在服务上保存页面

时间:2014-04-01 15:11:02

标签: android webview

我正在尝试使用服务中的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线程吗?

有什么想法吗?

0 个答案:

没有答案