博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android—— 线程 thread 两种实现方法!(转)
阅读量:6676 次
发布时间:2019-06-25

本文共 3704 字,大约阅读时间需要 12 分钟。

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

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

 

一:

在中有两种实现线程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

 

你可能感兴趣的文章
机器学习:逻辑回归
查看>>
Java字符编码的转化问题
查看>>
Node.js 连接 MySQL
查看>>
02-线性结构3. 求前缀表达式的值(25)
查看>>
csdn知识库
查看>>
安卓实训第四天--基于HttpClient来完毕数据在server和设备间的交互。
查看>>
软件測试、ios中的測试概念以及步骤
查看>>
具体图解 Flume介绍、安装配置
查看>>
tensorflow 1.0 学习:池化层(pooling)和全连接层(dense)
查看>>
LeetCode96_Unique Binary Search Trees(求1到n这些节点能够组成多少种不同的二叉查找树) Java题解...
查看>>
JAVA常见算法题(十二)
查看>>
spring-boot-oracle spring-batch
查看>>
URL编码与解码
查看>>
面向对象设计原则一:单一职责原则(SRP)
查看>>
Codeforces 839D Winter is here【数学:容斥原理】
查看>>
在js中怎样获得checkbox里选中的多个值?
查看>>
基于AllegroGraph实现Protege设计知识库模型的存储步骤
查看>>
线程中释放锁的方式
查看>>
VM环境下Linux虚拟机扩展存储空间操作方法总结
查看>>
PDB文件:每个开发人员都必须知道的
查看>>