2011-06-15 60 views
0

我在shouldOverrideUrlLoading中有一些代碼,用於下載數據,如果需要轉換,並在使用loadData或loadUrl的WebView中顯示。我將其移至一個線程(一個實現Runnable的類),現在它在下一頁加載時不會鎖定UI。不幸的是,有時它鎖定了整個應用程序,並在調試時暫停顯示它似乎無處可去(死鎖?)Android線程在shouldOverrideUrlLoading

我猜這是因爲UI不是線程安全的,甚至沒有webkit loadData/loadUrl ?有沒有辦法設置一些onFinish動作,在下載/轉換完成後在UI線程中運行?或者是否足以存儲當前線程,並在運行另一個線程之前取消它?

+0

你應該考慮使用'AsyncTask'而不是'Thread' – 2011-06-15 01:27:43

+0

我想到了這一點,但我只是發現這個:http://developer.android.com/resources/articles/painless-threading.html在把用戶界面命令view.post(新的Runnable(,似乎不凍結了,我想到了AsyncTask,但我想在普通的Java中這樣做) – NoBugs 2011-06-15 01:45:34

+0

最好堅持Android的做法,而不是「正常的Java」。在未來保存很多時間.. :) – 2011-06-15 02:28:40

回答

0

添加一個同步的(WebView){繞線程的代碼修復了這個問題。