如果我使用Runnable
命令发布Thread.sleep(10000)
,如果UI线程一次只能执行一条消息,为什么系统运行正常?
我在主要活动中创建了此线程。由主线程MessageQueue
处理按钮单击,然后如果h.post()
中的可运行对象当前在主线程上处于活动状态,那么如何处理按钮单击?他们不应该在MessageQueue
中等待吗?
new Thread(new Runnable() {
public void run() {
for(int ii=0;ii<9;ii++){
i++;
try
{
Thread.sleep(1000);
h.post(new Runnable(){
@Override
public void run()
{
t();
// TODO: Implement this method
}
});
}
catch (InterruptedException e)
{}
}
}
}).start();
答案 0 :(得分:0)
final Runnable r = new Runnable() {
public void run() {
Thread.sleep(10000);
//the thread stoped/sleeped is the thread of Runnable belongs to,
//but not the Main UI thread
}
};
不阻止主用户界面正是Runnable想要实现的目标。
答案 1 :(得分:0)
这是一个非常琐碎的问题。内部Runnable
位于主线程上,而外部Runnable
很耗时。因此,内部.ghw
不会阻止UI线程。谢谢!