2011-08-21 8 views
0

私はこのコードにいくつか問題があります。ここでは、問題の簡略化されたバージョンを見つけることができます。コードをデバッグにどのようにViewでPostメソッドを使用できますか?

public class MyActivity extends Activity { 

private WebView wv = null; 
private CountDownLatch signal = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    wv = (WebView) findViewById(R.id.web); 
    wv.setWebViewClient(new WebViewClient(){ 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      signal.countDown(); 
      super.onPageFinished(view, url); 
     } 
    } 
    wv.post(new Runnable() { 

     @Override 
     public void run() { 
      wv.loadUrl("file:///android_asset/MySample.html"); 
     } 
    }); 

    try { 
     signal.await(); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 
    ElaborateAll(2); 
} 

}

はElaborateAllに達していない(2)。

すべての援助が感謝されます。

答えて

0

あなたがやっていることがあります:

  1. がたCountDownLatch
  2. UIスレッドをブロックするUIスレッド
  3. にRunnableを投稿してカスタムWebViewClientを追加

そして、それはですそれはあなたの実行がそこで止まり、Runnableは実行されないので、あなたは決してloadUrl()を実行しません。 CountDownLatchを削除すると、プログラムはloadUrl()を期待どおりに実行します。

+0

ありがとうございました。コードをAsyncTask – Neo1975

関連する問題