Android 线程 thread 两种实现方法

    xiaoxiao2021-03-26  18

    原文链接: http://blog.csdn.net/boyupeng/article/details/6208072

    这篇文章中有三点需要提前说明一下,

     

    一:

    在android中有两种实现线程thread的方法:

    一种是,扩展java.lang.Thread类  另一种是,实现Runnable接口

     

    二: Thread类代表线程类,它的两个最主要的方法是:  run()——包含线程运行时所执行的代码  Start()——用于启动线程

     

    三: 

    Handler 机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务。

     

    下面分别给出两种线程的实现方法,其一,扩展java.lang.Thread类,也就是把run()方法写到线程里面:

     

    package com.my;   import android.app.Activity;   import android.os.Bundle;   import android.os.Handler;   import android.os.Message;   import android.util.Log;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;   public class Demo_For_Copy extends Activity   {       public Button button;              public Handler mHandler=new Handler()       {           public void handleMessage(Message msg)           {               switch(msg.what)               {               case 1:                   button.setText(R.string.text2);                   break;               default:                   break;                     }               super.handleMessage(msg);           }       };              /** Called when the activity is first created. */       @Override       public void onCreate(Bundle savedInstanceState)       {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           button=(Button)findViewById(R.id.button);              Thread thread=new Thread(new Runnable()           {               @Override               public void run()               {                   Log.e("1111", "111111111");                   // TODO Auto-generated method stub                   Message message=new Message();                   message.what=1;                   mHandler.sendMessage(message);               }           });           thread.start();       }   }  

     

     

     

    其二,实现Runnable接口,让类实现Runnable接口,然后把run方法单独提出来:

     

    package com.my;   import android.app.Activity;   import android.os.Bundle;   import android.os.Handler;   import android.os.Message;   import android.util.Log;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;   import android.widget.LinearLayout;   public class Title_Change_Demo extends Activity implements Runnable   {       public Button button;       public LinearLayout my_layout;              public Handler mHandler=new Handler()       {           public void handleMessage(Message msg)           {               switch(msg.what)               {               case 1:                   button.setText(R.string.text2);                   break;               default:                   break;                         }               my_layout.invalidate();               super.handleMessage(msg);           }       };              /** Called when the activity is first created. */       @Override       public void onCreate(Bundle savedInstanceState)       {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);                      button=(Button)findViewById(R.id.button);           my_layout=(LinearLayout)findViewById(R.id.my_layout);                      Thread thread=new Thread(this);           thread.start();       }              @Override       public void run()       {           Log.e("ok", "111111111");           // TODO Auto-generated method stub           Message message=new Message();           message.what=1;           mHandler.sendMessage(message);       }   }  
    转载请注明原文地址: https://ju.6miu.com/read-659437.html

    最新回复(0)