2

所以我正在运行一些带有 CountDownLatch 的线程。

我的问题是,当我调用latch.await() 时,用户界面似乎挂起,甚至事先调用的用户界面命令也没有效果。例如

btnShare.setVisibility(View.INVISIBLE);
prgSharing.setVisibility(View.VISIBILE);

latch.await()

前两行对 UI 没有影响。

知道为什么这是并且可能是解决方案吗?谢谢。

4

2 回答 2

3

这很可能是因为您UI-Thread在它可以再次渲染之前阻止了它Views。我认为您应该查看AsyncTask并可能将您的wait逻辑放入doInBackground()方法中,或者以某种方式重新考虑您的实现。

于 2012-10-22T14:46:46.363 回答
2

如果 UI 挂起,那是因为您调用:

latch.await()

UI Thread.你必须避免在 UI 线程上阻塞调用,因为这些是导致ANR

于 2012-10-22T14:47:11.847 回答