我想测试我的Looper是否完成了它的工作,因为我希望在我的活动的所有元素都在屏幕上之后执行代码。我想在Looper完成工作后触发一个事件。在UI中的所有元素出现在屏幕上之后,我可以这样做还是有其他方法来执行我的代码?
答案 0 :(得分:0)
您可以检查元素的可见性。如果它们是真的,那么运行你的代码....(希望我理解正确。)
答案 1 :(得分:0)
通过致电looper
启动Looper.loop()
后,在您明确致电Looper.quit()
之前,不退出。
您可以使用Semaphore
来协调您的代码,这样您就可以等到Looper完成其工作。
1-在您的班级中定义一个Semaphore
对象,并使用0
许可进行初始化,例如
Semaphore semaphore = new Semaphore(0);
2-在您希望wait
致电semaphore.acquire()
的地方,该地点会阻止permit
可用
3-完成你的looper呼叫semaphore.release()
后,它将向信号量添加许可,其他等待代码将继续运行。
注意,如果在调用semaphore.acquire()
之前完成了弯针;它会立即继续,不会阻止
有关使用Semaphore