欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android 线程thread的两种实现方法(必看)

时间:2021-05-02 08:20:13|栏目:Android代码|点击:

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

一:在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); 
  } 
} 

上一篇:Mac 下 Android Studio 不打印日志的解决办法

栏    目:Android代码

下一篇:RecyclerView使用详解

本文标题:Android 线程thread的两种实现方法(必看)

本文地址:http://www.codeinn.net/misctech/113309.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有