所以我正在运行一些带有 CountDownLatch 的线程。
我的问题是,当我调用latch.await() 时,用户界面似乎挂起,甚至事先调用的用户界面命令也没有效果。例如
btnShare.setVisibility(View.INVISIBLE);
prgSharing.setVisibility(View.VISIBILE);
latch.await()
前两行对 UI 没有影响。
知道为什么这是并且可能是解决方案吗?谢谢。
所以我正在运行一些带有 CountDownLatch 的线程。
我的问题是,当我调用latch.await() 时,用户界面似乎挂起,甚至事先调用的用户界面命令也没有效果。例如
btnShare.setVisibility(View.INVISIBLE);
prgSharing.setVisibility(View.VISIBILE);
latch.await()
前两行对 UI 没有影响。
知道为什么这是并且可能是解决方案吗?谢谢。
这很可能是因为您UI-Thread
在它可以再次渲染之前阻止了它Views
。我认为您应该查看AsyncTask
并可能将您的wait
逻辑放入doInBackground()
方法中,或者以某种方式重新考虑您的实现。
如果 UI 挂起,那是因为您调用:
latch.await()
UI Thread.
你必须避免在 UI 线程上阻塞调用,因为这些是导致ANR