android多线程学习二

package xiniu.www0855map.com;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;

public class ThreedDemoActivity extends Activity {
    
    private Handler myHandler=null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        HandlerThread handlerThread=new HandlerThread("myHanderThread");
        handlerThread.start();
        
        myHandler=new Handler(handlerThread.getLooper());
        myHandler.post(new myRunable());
        System.out.println("Oncreate---The Thread id is :"  
                                + Thread.currentThread().getId());  

        setContentView(R.layout.main);
    }
    
    
    private class myRunable implements Runnable
    {

        @Override
        public void run() {
            // TODO Auto-generated method stub
             System.out.println("Runnable---The Thread is running");  
                     
             System.out.println("Runnable---The Thread id is :" + Thread.currentThread().getId());  
             try {
                Thread.sleep(12000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
        
    }
}
 
 

在这个demo中,用到了HandlerThread,在HandlerThread对象中可以通过getLooper方法获取一个Looper对象控制句柄,我们可以将其这个Looper对象映射到一个Handler中去来实现一个线程同步机制。于是就有以下结果;
1:控制台的输出: Oncreate---The Thread id is :1
Runnable---The Thread is running
Runnable---The Thread id is :10
2:程序启动后,我们立刻看到main.xml中的内容。
这样就达到了多线程的结果。

posted @ 2012-02-11 21:16  千禧牛  阅读(255)  评论(0)    收藏  举报