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

 

一:

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

更多相关文章

  1. 深入了解android平台的jni(一)
  2. android滑动解锁
  3. Android(安卓)异步消息处理机制 让你深入理解 Looper、Handler、
  4. Android(安卓)IPC之Messenger和AIDL(android开发艺术探索随笔)
  5. Android中播放视频的三种方式
  6. APK反编译软件以及方法
  7. Android(安卓)ContentProvider的线程安全(一)
  8. Android中EventBus原理及用法详情
  9. Android(安卓)NestedScrolling嵌套滚动的示例代码

随机推荐

  1. [计算机论文速递] 2018-03-23
  2. 利用OpenCV和深度学习实现人脸检测
  3. [计算机视觉论文速递] 2018-03-20
  4. git 忽略未提交
  5. 使RPA效用最大化的业务流程应具备的5大特
  6. 基础命令8
  7. 第25章 0119-组件的知识,学习心得,笔记(Vue,
  8. PHP基础知识:数组相关函数和操作
  9. 初探jQuery($(),attr(),css(),val(),html(
  10. 数组排序、数组合并