Android—— 線程 thread 兩種實現方法!

來源:互聯網
上載者:User

標籤:

原文地址:http://blog.csdn.net/boyupeng/article/details/6208072

這篇文章中有三點需要提前說明一下,

 

一:

在android中有兩種實現線程thread的方法:

一種是,擴充java.lang.Thread類 
另一種是,實現Runnable介面

 

二:
Thread類代表線程類,它的兩個最主要的方法是: 
run()——包含線程運行時所執行的代碼 
Start()——用於啟動線程

 

三: 

Handler 機制,它是Runnable和Activity互動的橋樑,在run方法中發送Message,在Handler裡,通過不同的Message執行不同的任務。

(Handler的設計實際上是為了應用程式內其他線程和主線程進行通訊,因為只有主線程才能更新UI,其他線程不行)

下面分別給出兩種線程的實現方法,其一,擴充java.lang.Thread類,也就是把run()方法寫到線程裡面:

 1 package com.my;   2 import android.app.Activity;   3 import android.os.Bundle;   4 import android.os.Handler;   5 import android.os.Message;   6 import android.util.Log;   7 import android.view.View;   8 import android.view.View.OnClickListener;   9 import android.widget.Button;  10 public class Demo_For_Copy extends Activity  11 {  12     public Button button;  13       14     public Handler mHandler=new Handler()  15     {  16         public void handleMessage(Message msg)  17         {  18             switch(msg.what)  19             {  20             case 1:  21                 button.setText(R.string.text2);  22                 break;  23             default:  24                 break;        25             }  26             super.handleMessage(msg);  27         }  28     };  29       30     /** Called when the activity is first created. */  31     @Override  32     public void onCreate(Bundle savedInstanceState)  33     {  34         super.onCreate(savedInstanceState);  35         setContentView(R.layout.main);  36         button=(Button)findViewById(R.id.button);  37   38         Thread thread=new Thread(new Runnable()  39         {  40             @Override  41             public void run()  42             {  43                 Log.e("1111", "111111111");  44                 // TODO Auto-generated method stub  45                 Message message=new Message();  46                 message.what=1;  47                 mHandler.sendMessage(message);  48             }  49         });  50         thread.start();  51     }  52 }  

其二,實現Runnable介面,讓類實現Runnable介面,然後把run方法單獨提出來:

 1 package com.my;   2 import android.app.Activity;   3 import android.os.Bundle;   4 import android.os.Handler;   5 import android.os.Message;   6 import android.util.Log;   7 import android.view.View;   8 import android.view.View.OnClickListener;   9 import android.widget.Button;  10 import android.widget.LinearLayout;  11 public class Title_Change_Demo extends Activity implements Runnable  12 {  13     public Button button;  14     public LinearLayout my_layout;  15       16     public Handler mHandler=new Handler()  17     {  18         public void handleMessage(Message msg)  19         {  20             switch(msg.what)  21             {  22             case 1:  23                 button.setText(R.string.text2);  24                 break;  25             default:  26                 break;            27             }  28             my_layout.invalidate();  29             super.handleMessage(msg);  30         }  31     };  32       33     /** Called when the activity is first created. */  34     @Override  35     public void onCreate(Bundle savedInstanceState)  36     {  37         super.onCreate(savedInstanceState);  38         setContentView(R.layout.main);  39           40         button=(Button)findViewById(R.id.button);  41         my_layout=(LinearLayout)findViewById(R.id.my_layout);  42           43         Thread thread=new Thread(this);  44         thread.start();  45     }  46       47     @Override  48     public void run()  49     {  50         Log.e("ok", "111111111");  51         // TODO Auto-generated method stub  52         Message message=new Message();  53         message.what=1;  54         mHandler.sendMessage(message);  55     }  56 }  57   

 

Android—— 線程 thread 兩種實現方法!(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.