我可以测试我的线程活套是否完成了它的消息



我想测试我的Looper是否完成了它的工作,因为我想在我的活动的所有元素都出现在屏幕上之后执行代码。我想在Looper完成工作后触发一个事件。我可以这样做吗?或者在UI中的所有元素出现在屏幕上后,是否有其他方法来执行我的代码?

通过调用Looper.loop()启动looper后,在显式调用Looper.quit()之前,它不会退出。

您可以使用Semaphore来协调您的代码,这样您就可以等到Looper完成它的工作。

1-在类中定义一个Semaphore对象,并使用0许可对其进行初始化,例如

Semaphore semaphore = new Semaphore(0);

2-在您想要wait的地方调用semaphore.acquire(),它将阻塞直到permit可用

3-在您完成循环器调用semaphore.release()之后,它将为信号量添加一个许可证,其他等待的代码将继续运行。

注意,如果在调用semaphore.acquire()之前完成的活套;它将立即继续,不会阻止

关于使用Semaphore 的代码示例,请参阅此处的答案

您可以检查元素的可见性。如果它们是真的,请运行您的代码。。。。(希望我理解正确。)

最新更新