7

我有一个 WebView,我在 AsyncTask.doInBackground 中使用 loadUrl 对其进行了初始化。我像下面这样初始化它:

webView.post(new Runnable() {               
    @Override
    public void run() {
        webView.loadUrl(authURL);                   
    }
});

AsyncTask 在 Activity.onCreate() 中最后执行,问题是大多数时候网页没有加载,我看到白屏。如果我用处理程序替换 webView,那么一切都很好。我在这里想念什么?

4

1 回答 1

11

如果它需要在 UI 线程上运行,你为什么要这样做doInBackground()

Hander.post()和之间的区别在于View.post(),它将在创建实例的线程(不一定是 UI 线程)Handler上运行您的代码,而始终在 UI 线程上运行它(因为视图绑定到它)。HandlerView

于 2012-10-15T03:46:17.293 回答