Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用webView保存服务上的页面_Android_Webview - Fatal编程技术网

Android 使用webView保存服务上的页面

Android 使用webView保存服务上的页面,android,webview,Android,Webview,我试图使用Web视图中的“saveWebArchive”方法在服务中存储网页,但我收到一个错误消息,即“在线程“IntentService[OffLineSaverService]”上调用了Web视图方法。所有Web视图方法都必须在UI线程上调用。Web视图的未来版本可能不支持在其他线程上使用” 这很公平,但是。。。有什么办法吗 public class OffLineSaverService extends IntentService { public OffLineSaverSer

我试图使用Web视图中的“saveWebArchive”方法在服务中存储网页,但我收到一个错误消息,即“在线程“IntentService[OffLineSaverService]”上调用了Web视图方法。所有Web视图方法都必须在UI线程上调用。Web视图的未来版本可能不支持在其他线程上使用”

这很公平,但是。。。有什么办法吗

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线程过载


有什么想法吗?

很有趣。您是否能够从服务访问WebView方法?这可能吗?你成功了吗?