widget post()与handler post()有什么区别?

时间:2012-10-14 18:54:22

标签: android

我有一个WebView,我在AsyncTask.doInBackground中使用loadUrl进行初始化。我将其初始化如下:

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

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

1 个答案:

答案 0 :(得分:12)

如果需要在UI线程上运行,为什么要在doInBackground()中执行此操作?

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