2011-06-15 62 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){绕线程的代码修复了这个问题。