2 nimashihuangmi nimashihuangmi 于 2015.06.03 17:22 提问

Android中Thread.sleep和UI组件更新的关系

如题,在调试一个程序时,先执行了ImageView的setDrawableResource()方法,然后调用Thread.sleep()延时一段时间,但是实际是在延时完成后ImageView的图片才改变,请问各位大神这是为何?

6个回答

q3733353520
q3733353520   2015.06.06 11:52

postdelay================================================

bdmh
bdmh   Ds   Rxr 2015.06.03 17:28

把你的延时放到线程中去,时间到了,通过handler同志ui继续下面的操作

nimashihuangmi
nimashihuangmi 但是我需要在延时完成后,再继续往下执行。如果另开一个线程,那延时的过程中,UI线程也是不能往下执行的。
2 年多之前 回复
Arnold9009
Arnold9009   2015.06.03 18:13

在UI线程中调用Thread.sleep,就把UI线程停住了,所以UI就不更新了
你把Thread.sleep放到另外一个线程中,然后通过hanler来处理延时之后继续执行的动作

zuishikonghuan
zuishikonghuan   2015.06.03 18:51

在线程中sleep,sleep完了后用Handler通知UI线程,接到通知后再处理你想做的事。

zuishikonghuan
zuishikonghuan 回复后跟脚: 不是你说的那样,看这个:http://blog.csdn.net/imyang2007/article/details/7839883(之前手机上不能回复你))
2 年多之前 回复
zuishikonghuan
zuishikonghuan 不是你说的那样,看这个:http://blog.csdn.net/imyang2007/article/details/7839883
2 年多之前 回复
nimashihuangmi
nimashihuangmi 那在线程sleep的时候,UI线程也是要一直的等待,程序不能往下执行
2 年多之前 回复
u011133213
u011133213   2015.06.09 22:26

兄弟,你Sleep了UI线程,这是正解...!
哎要做那个定时何必用这样。直接handler.post一个延迟的message,接到之后做处理就行了!

datou431
datou431   Rxr 2015.06.18 11:11

sleep完了后用Handler通知UI线程,接到通知后再处理你想做的事。

Csdn user default icon
上传中...
上传图片
插入图片