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

mar*_*inj 6 android

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

webView.post(new Runnable() {               
    @Override
    public void run() {
        webView.loadUrl(authURL);                   
    }
});
Run Code Online (Sandbox Code Playgroud)

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

Nik*_*kov 12

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

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