handler上遇到的一个问题
我知道handler是将一个消息(我这里是runable)放入UI activity的队列中,消息被排队进行处理。那么在下面的程序中,runable是队列中唯一的消息,因此直接被处理,也就是程序运行时,执行休眠10000ms后,屏幕上才会显示activity中的控件,事实也确实如此。可我认为输出"hello~"应该和控件的显示是同一时间,也就是10000ms后。可为什么结果却是程序一运行就直接输出了"hello~",而activity的控件却是10000ms后显示的呢?
public class Handle_01Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
firstHandler.post(runnable);
setContentView(R.layout.main);
System.out.println("hello~");
}
Handler firstHandler = new Handler();
Runnable runnable = new Runnable()
{
@Override
public void run()
{
try
{
Thread.sleep(10000);
} catch (Exception e)
{}
}
};
}