Android CountDownLatch.await()过早冻结用户界面

Android CountDownLatch.await()过早冻结用户界面,android,countdownlatch,Android,Countdownlatch,所以我用倒计时锁运行一些线程 我的问题是,当我调用latch.await()时,UI似乎挂起,甚至事先调用的UI命令也没有效果。e、 g btnShare.setVisibility(View.INVISIBLE); prgSharing.setVisibility(View.VISIBILE); latch.await() 前两行对UI没有影响 你知道这是为什么,也可能是一个解决方案吗?谢谢。这很可能是因为您正在阻止UI线程,然后它才能再次呈现视图。我认为您应该查看并可能将wait逻辑放在

所以我用倒计时锁运行一些线程

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

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

latch.await()
前两行对UI没有影响


你知道这是为什么,也可能是一个解决方案吗?谢谢。

这很可能是因为您正在阻止
UI线程
,然后它才能再次呈现
视图
。我认为您应该查看并可能将
wait
逻辑放在
doInBackground()
方法中,或者以某种方式重新考虑您的实现。

这很可能是因为您正在阻止
UI线程
,然后它才能再次呈现
视图。我认为您应该查看并可能将您的
wait
逻辑放在
doInBackground()
方法中,或者以某种方式重新考虑您的实现。

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

latch.await()

UI线程上。
您必须避免阻止对UI线程的调用,因为这是导致
ANR
的原因,如果UI挂起,则是因为您调用:

latch.await()

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

的原因。好主意,在我的UI线程中,我正在处理多个web任务,但将其卸载到一个异步任务中,然后我可以等待()这两个任务完成并将最终结果传递回UI线程。谢谢。好主意,在我的UI线程中,我正在处理多个web任务,但将其卸载到一个AsyncTask中,然后我可以等待()完成这两个任务,并将最终结果传递回UI线程。谢谢