我有4个视图,我希望第一个视图变为可见,然后两秒后Invisble然后应该下一个视图变为可见,再过2秒后再次看不见,依此类推到无穷远哪个视图被选中这是随机的。
我知道我试图为每个View一个4个Threads,所以无论何时选择View,都会启动相应的Thread。当只选择一个视图时,这非常有效,我使用handler.sendEmptyMessage(0)
来设置View Visible
和handler.sendEmptyMessageDelayed(1, 2000)
用于在2秒后设置视图不可见。
但是当选择的视图多于一个时,这仅适用于最后一个被选中的视图。 我认为就是这种情况,因为MainThread仅在所有线程完成工作后才执行他的MessageQueue。所以我需要一个方法,当Thread完成时,MessageQueue总是被执行(并且UI被更改)。
谢谢!
答案 0 :(得分:0)
当您运行多个线程时,您无法保证任何特定线程在其他线程之前/期间/之后运行。
最好只让一个线程每两秒发送一条空消息。收到该消息后,隐藏以前可见的视图,随机选择要显示的下一个视图,并显示它。