Android—— 线程 thread 两种实现方法!(转)

原文地址: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   
时间: 2024-10-28 15:51:05

Android—— 线程 thread 两种实现方法!(转)的相关文章

线程的两种实现方法

1. java中实现多线程操作有两种方法:继承Thread类和实现Runnable接口 一.继承Thread类 class MyThread extends Thread {//继承Thread类 private String name ; public MyThread(String name) { this.name = name; } public void run() {//覆写Thread类中的run方法 System.out.println("MyThread-->"

线程的两种睡眠方法&ANR(进程/服务无响应)

1 method1: try { 2 Thread.sleep(3000); 3 } catch (InterruptedException e) { 4 e.printStackTrace(); 5 } 6 method2: SystemClock.sleep(3000); ANR(Application Not Responding) 在Android上,如果应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Re

启动线程的两种方法的对比

java中Thread类有两种启动方法: 1.Thread.start() 2.Thread.run() 这两种方法的执行效果并不一样.Thread.start()方法是通知"线程规划器"此线程已经准备就绪,等待调用线程对象run()方法,是异步的执行结果. Thread.run()方法则是同步的,并不交给"线程规划器"来处理,而是由调用此线程的线程直接调用线程的run()方法,必须等run()方法中的代码执行完以后才能执行后面的代码 另外,执行start()方法的

创建线程的两种方式比较Thread VS Runnable

1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 1 public class MyThread extends Thread{ 2 @Override 3 public void run() { 4 // TODO Auto-generated method stub 5 6 } 7 } 8 //线程使用 9 MyThread mt = new MyThread(); //创建线程 10 mt.start(); //启动线程 另外一种方式是实现Runnabl

创建线程的两种方式

首先我们需要知道什么是线程:是程序执行流的最小单元,包括就绪.阻塞和运行三种基本状态. 举个简单的例子:我们把生活中的两件事吃饭和写作业当作是两个线程,当你正在写作业的时候,爸妈叫你吃饭,你就直接去了,等吃完饭回来后再接着写作业.这就是相当于两个线程其中一个从运行状态转入就绪状态,另一个线程从就绪状态转入运行状态. 创建线程包括继承Thread类和实现Runnable接口两种方式(JDK5.0以后还包括了实现Callable等方式来实现线程,这里不做介绍,感兴趣的小伙伴可以自己查资料),下面介绍

黑马程序员——创建线程的两种方式

java中创建线程有两种方式: 1.继承Thread类 步骤: (1)定义一个类继承Thread类 (2)复写Thread类中的run()方法 (3)调用start()方法:启动线程及调用run()方法 2.实现Runnable接口的方式 步骤:(1)定义一个类实现Runnable接口 (2)覆盖Runnable接口中的run()方法,将线程要运行的代码放到该run方法中 (3)通过Thread类建立线程对象 (4)将实现Runable接口的类对象作为实际参数传递给Thread的构造函数. (5

Java开启线程的两种方式

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ Java开启线程的两种方式: 方式一:成为线程(Thread)的儿子,即继承Thread类简单代码如下:class Student extends Thread{Student(String name){super(name);}public

Java---11---多线程的两种创建方式

多线程的两种创建方式: 下面这些东西是API文档中的: public class Thread extends Object implements Runnable 线程 是程序中的执行线程.Java 虚拟机允许应用程序并发地运行多个执行线程. 每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程.每个线程都可以或不可以标记为一个守护程序.当某个线程中运行的代码创建一个新 Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线程才是守护

Java并发编程-创建线程的两种方式及区别

转载请注明:http://blog.csdn.net/UniKylin/article/details/45016117 1.线程和进程的区别 并行:是多个任务在同一时间同时执行,例如多核计算机同时计算的任务可以理解为并行 并发:从微观上看是多个任务抢占一个CPU从而执行自己的任务,轮流执行任务,但是如果遇到资源冲突的时候并没有从根本提高执行效率.但是提高了CPU的使用效率. 前段时间在GitHub上的一幅图可以很好的阐述上面的概念非常形象 2.Java中创建线程的两种方式 1.第一种方式:直接