Android 线程 thread 两种实现方法!
来源:互联网 发布:中国手机网民最新数据 编辑:程序博客网 时间:2024/04/30 07:51
这篇文章中有三点需要提前说明一下,
一:
在android中有两种实现线程thread的方法:
一种是,扩展java.lang.Thread类
另一种是,实现Runnable接口
二:
Thread类代表线程类,它的两个最主要的方法是:
run()——包含线程运行时所执行的代码
Start()——用于启动线程
三:
Handler 机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务。
(Handler的设计实际上是为了应用程序内其他线程和主线程进行通信,因为只有主线程才能更新UI,其他线程不行)
下面分别给出两种线程的实现方法,其一,扩展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);
- }
- }
0 0
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法
- Android 线程 thread 两种实现方法!
- Android 线程 thread的实现方法
- JAVA 线程的两种基本实现方法(继承Thread类和实现Runnable接口)
- Thread的两种实现方法
- JAVA中创建线程对象的两种方法:继承Thread和实现Runable
- java两种启动线程方法根本不同,Thread继承和实现Runable接口
- 小白成长记——Android进阶之线程thread的两种实现
- 线程 创建和启动线程的两种方式 实现Runnable接口 继承Thread类 重写唯一方法run()
- 实现一个线程的两种方法
- 两种实现线程的方法
- 实现线程的两种方法
- 实现线程的两种方法
- 读写TXT或者ini文件
- HDU 5492(Find a path-最小方差路径)
- HDU 5465 Clarke and puzzle (二维树状数组维护区间异或)
- Effective Objective-C
- Effective Objective-C(二)
- Android 线程 thread 两种实现方法!
- DirectX11 Direct3D初始化
- 一笔画问题 42 (dfs) 好题
- 为什么我们用spring
- linux简单进程间socket通信
- Learning Spark 第三章 RDD编程 已翻译整理完毕,PDF可下载
- 性能优化总结
- Android的Message机制(简单小结)
- Chapter1 《第一个简单到IOS应用》