android thread Runnable
原文链接: 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);
}
}
android thread Runnable的更多相关文章
- android 多线程Thread,Runnable,Handler,AsyncTask
先看两个链接: 1.http://www.2cto.com/kf/201404/290494.html 2. 链接1: android 的多线程实际上就是java的多线程.android的UI线程又称 ...
- android Thread和Runable区别,精讲(有疑问)
网上总是说Runable和Thread可以实现线程,这导致我对Thread和Runable有错误的理解,谁让当时不求甚解,让我一直以为实现Runable可以开启线程. 看过源码后进行区分这两者. 无论 ...
- Java多线程高并发学习笔记(一)——Thread&Runnable
进程与线程 首先来看百度百科关于进程的介绍: 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动.它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体.它不只是程序的代码,还包括当前的 ...
- 线程 Thread Runnable 守护线程 join MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 第39天学习打卡(多线程 Thread Runnable 初始并发问题 Callable )
多线程详解 01线程简介 Process与Thread 程序:是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念. 进程则是执行程序的一次执行过程,它是一个动态的概念.是系统资源分配的 ...
- Android 线程池系列教程(2)Thread,Runnable是基类及如何写Run方法
Specifying the Code to Run on a Thread 上一课 下一课 1.This lesson teaches you to Define a Class that Im ...
- Android Thread.UncaughtExceptionHandler捕获
在Java 的异常处理机制中:如果抛出的是Exception异常的话,必须有try..catch..进行处理,属于checked exception.如果抛出的是RuntimeException异常的 ...
- Android Thread 官方说明
Thread官方说明 https://developer.android.google.cn/reference/java/lang/Thread Thread是程序中执行的线程.Java虚拟机允许应 ...
- Android Thread Handler UIHandler demos
extends:http://blog.csdn.net/superjunjin/article/details/7540064 序效果:为了显示如何用message传值的简单例子 例1,点击按钮,持 ...
随机推荐
- sql查询静态数据
select * from ( ,,,'高中')) AS Education ( EducationId,EducationName )
- 低版本vsphere部署高版本导出的OVF 报“硬件系列vmx-13不受支持“解决办法
用文本编辑器之类的工具 打开ovf模板 然后下拉20多行左右 找到vmx-13这条报错内容 将13更改为数字较低的值 例如11,12
- Solr是什么?
么是Solr?Solr是什么? 答:Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口. Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服 ...
- centos 升级python
1.下载python3.6.1的包 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz 2.解压 tar -zxvf Pytho ...
- ThreadLocal内存泄漏
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11421437.html 内存泄漏 内存泄漏是指不再使⽤的对象⽆法得到及时的回收,持续占⽤内存空间,从⽽ ...
- JSP自定义方法标签
1.自定义方法标签 引入方式示例: <%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> 写 ...
- Steup Factory 操作注册表
//判断注册表是否存在,不存在就创建 result = Registry.DoesKeyExist(HKEY_CURRENT_USER, "SOFTWARE\\MyTestApp" ...
- c++11 继承构造函数
若基类拥有数量众多的不同版本的构造函数,而派生类中只有一些成员函数,则对于派生类而言,其构造函数就等同于构造基类. struct A { A(int i) {} A(double d, int i) ...
- Linux进程管理之ps的使用
主题Linux进程管理之ps工具的使用 一ps工具的介绍 ps: process state 进程状态ps - report a snapshot of the current processesL ...
- ajaxfileupload异步上传
=====================upload.html======================= <!DOCTYPE html PUBLIC "-//W3C//DTD X ...