Android CountDownLatch.await()过早冻结了UI

时间:2012-10-22 14:32:21

标签: android countdownlatch

所以我使用CountDownLatch运行一些线程。

我的问题是,当我调用latch.await()时,UI似乎挂起,甚至预先调用的UI命令都没有效果。 e.g。

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

latch.await()

前两行对用户界面没有影响。

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

如果UI挂起,那是因为你打电话:

latch.await()
UI Thread.上的

您必须避免阻止UI线程上的调用,因为这些是ANR

的原因