本问题,是看了《中文Android开发视频教学》中,第15讲的handler视频,产生的疑问!本代码目的:验证Handler对象同属于Activity线程中,并非新建一个线程!package com.android.test.testhandler;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;public class TestHandler extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        handler.post(updateThread);
        setContentView(R.layout.main);
        
        System.out.println("Activity ID  :" + Thread.currentThread().getId());
        System.out.println("ActivityName :" + Thread.currentThread().getName());
    }
    
    Handler handler = new Handler();
    
    Runnable updateThread = new Runnable() {                @Override
                public void run() {
                        // TODO Auto-generated method stub
                        System.out.println("Handler ID  ----------:" + Thread.currentThread().getId());
                System.out.println("HandlerName ----------:" + Thread.currentThread().getName());
                
                try {
                                Thread.sleep(10000);
                        } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                        
                }
            
    };
    
    
}对System.out进行过滤,得到的结果如下:
05-11 06:39:06.267: INFO/System.out(344): Activity ID  :1
05-11 06:39:06.325: INFO/System.out(344): ActivityName :main
05-11 06:39:06.445: INFO/System.out(344): Handler ID  ----------:1
05-11 06:39:06.445: INFO/System.out(344): HandlerName ----------:main描述:
由于handler.post(updateThread); 先运行,接着执行 updateThread对象的run()方法,休眠10s时间,所以Activity的界面布局应该10s后才显示出来!即,setContentView(R.layout.main);这句话,10s后才运行!问题:为什么输出中,“Activity ID : 1” 先显示,而“Handler ID  ----------:1”后显示呢?