2011-06-15 22 views
0

shouldOverrideUrlLoadingにいくつかのコードがあり、必要に応じてデータをダウンロードし、loadDataまたはloadUrlを使用してWebViewに表示します。これをスレッド(Runnableを実装するクラス)に移して、次のページがロードされている間はUIをロックしません。残念ながら、アプリケーション全体がロックされ、デバッグ中に一時停止するとデッドロックが発生するようです(デッドロック?)Androidスレッドin shouldOverrideUrlLoading

これはUIがスレッドセーフではなく、webkit loadData/loadUrl ?ダウンロード/変換が完了した後にUIスレッドで実行される何らかのonFinishアクションを設定する方法はありますか?または、現在のスレッドを保存してから、別のスレッドを実行する前にキャンセルするだけで十分ですか?

+0

'Thread'の代わりに' AsyncTask'を使うことを考えてみましょう。 –

+0

私はそれを考えましたが、私はこれを見つけました:http://developer.android.com/resources/articles/painless-threading.html私はAsyncTaskについて考えましたが、通常のJavaでこれを行う方法が欲しかったのです。 – NoBugs

+0

"normal java"ではなく、Androidのプラクティスに忠実に従うことをお勧めします。 :) –

答えて

0

スレッドのコードの周りに同期化された(WebView){を追加するとこれが修正されます。