7

AsyncTask.doInBackgroundのloadUrlで初期化するWebViewがあります。私はそれを以下のように初期化します:

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

AsyncTaskはActivity.onCreate()で最後に実行されます。問題は、ほとんどの場合Webページがロードされないことです。白い画面が表示されます。webViewをハンドラーに置き換えると、すべて問題ありません。ここで何が欠けていますか?

4

1 に答える 1

11

doInBackground()とにかくUIスレッドで実行する必要があるのに、なぜこれを行うのですか?

Hander.post()との違いはView.post()、インスタンスが作成されHandlerたスレッド(必ずしもUIスレッドである必要はありません)でコードを実行し、常にUIスレッドでコードを実行することです(ビューがバインドされているため)。HandlerView

于 2012-10-15T03:46:17.293 に答える