(1)进程间通信交换信息的一种方式--使用handler;

(2)在主线程中new一个Handler对象,并重写他的handlerMessage(Message msg)方法;

(3)Message中有几个属性,可以用来传递简单的int型的参数(一般定义多个static final int 的常量)用来给What分类;

(4)obj属性可以用来传递其他对象,其中arg1和arg2两个属性可以用来储存int消息内容。

下面是一个activity_main布局

下面是主要Activity代码

public class MainActivity extends Activity {

private  final static  String TAG =  "THREAD_ACTIVITY"; //调试标记

public   final static  int MUTI_THREAD  =  0;//用于what属性的标记变量

public   final static  int COMPLETE_THREAD  =  1;//用于what属性的标记变量

private Button btn;  private TextView tv;

private Handler handler = new Handler(){    @Override     public void handleMessage(Message msg)  //重写处理消息的方法

{   if(msg.what==MUTI_THREAD)

{       tv.setText(""+msg.arg1);      }

else if(msg.what==COMPLETE_THREAD)

{       tv.setText("complete");       btn.setText("complete");      }

super.handleMessage(msg);     }        };

@Override  protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);

tv = (TextView) findViewById(R.id.tv);

btn = (Button)findViewById(R.id.btn);

btn.setOnClickListener( new OnClickListener() {

@Override    public void onClick(View v) {

start_thread();      btn.setText("running...");

}

});

}

private void start_thread() {

// TODO Auto-generated method stub

new Thread(){    //新线程

@Override     public void run() {

// TODO Auto-generated method stub

int i = 100;

int j = 0;

Message msg = new Message();

for(j=1;j<i;j++){

Log.v(TAG, "J = "+j);

msg.what = MUTI_THREAD;

msg.arg1 = j;

handler.sendMessage(msg);    //每次发送一个消息

try {

Thread.sleep(1000);       }

catch (InterruptedException e) {

// TODO Auto-generated catch block        e.printStackTrace();       }

}

msg.what = COMPLETE_THREAD;

handler.sendMessage(msg);     //完成时修改what属性          }

}.start();

}

}

注意:在运行前必须加入permission权限INTERNET

Android多线程入门学习的更多相关文章

  1. java多线程入门学习(一)

    java多线程入门学习(一) 一.java多线程之前 进程:每一个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销.一个进程包括1--n个线程.     线程:同一类线程共享代码 ...

  2. android的入门学习

    android 入门学习. 活动:就是一个包含应用程序的用户界面的窗口.目的就是与用户交互. 意图:就是能够将来自不同应用程序的不同活动无缝连接在一起工作的"胶水",确保这些任务执 ...

  3. Android SurfaceView入门学习

    学习资料: Android 开发群英传 搜索学习资料时,搜到了罗升阳老师的Android视图SurfaceView的实现原理分析,老罗老师写的一系列博客,一年前开始学习Android时看不懂,现在依然 ...

  4. Android测试入门学习

    一,Android测试新人练习——安装及文件传输 [课前准备] Android测试环境搭建 1.下载并安装JDK: http://www.oracle.com/technetwork/java/jav ...

  5. c# 多线程——入门学习

    1. 概念介绍 1.1 线程 线程是操作系统能够进行运算调度的最小单位,包含在进程之中,是进程中的实际运作单位.一条线程指的时进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不 ...

  6. Java多线程学习(一)Java多线程入门

    转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79640870 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...

  7. Android多线程源码学习笔记一:handler、looper、message、messageQueue

    最近在学习Android多线程相关知识的源码,现在把自己的笔记整理一下,写出来加深印象. Android多线程通讯的核心是handler.looper.message.messageQueue,这篇文 ...

  8. Android M中 JNI的入门学习

    今年谷歌推出了Android 6.0,作为安卓开发人员,对其学习掌握肯定是必不可少的,今天小编和大家分享的就是Android 6.0中的 JNI相关知识,这是在一个安卓教程网上看到的内容,感觉很不错, ...

  9. Android Camera2 拍照入门学习

    原文:Android Camera2 拍照入门学习 学习资料: 肾虚将军android camera2 详解说明 极客学院android.hardware.camera2 使用指南 Android 5 ...

随机推荐

  1. initWithFrame 和 initWithCoder

    当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self ...

  2. 简单的两数之和再次乱入<< Add Two Numbers >>

    请看题目描述: You are given two linked lists representing two non-negative numbers. The digits are stored ...

  3. JDBC体会

    1.把mysql-connector XXXX版本导入buildpath 2.通过DriverManager 的getConnection 方法获得一个Connnection引用,方法的参数是 url ...

  4. HTML--3css样式表

    CSS(Cascading Style Sheet,叠层样式表),作用是美化HTML网页. /*注释区域*/    此为注释语法 一.样式表 (一)样式表的分类 1.内联样式表 和HTML联合显示,控 ...

  5. PAT 05-树6 Path in a Heap

    这次的作业完全是依葫芦画瓢,参照云课堂<数据结构>(http://mooc.study.163.com/learn/ZJU-1000033001#/learn/content)中何钦铭老师 ...

  6. angularJs 自定义服务 provide 与 factory 的区别

    <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <met ...

  7. 从问题看本质:socket到底是什么(问答式)? .

    转自:http://blog.csdn.net/yeyuangen/article/details/6799575 一.问题的引入——socket的引入是为了解决不同计算机间进程间通信的问题 1.so ...

  8. 如何实现标准TCODE的屏幕增强

    如何实现标准TCODE的屏幕增强(HOWTO:Implement a screen exit to a standard SAP transaction) Introduction SAP provi ...

  9. S50非接触式IC卡性能简介(M1)

    一.主要指标 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位: 每个扇区有独立的一组密码及访问控制: 每张卡有唯一序列号,为32位: 具有防冲突机制,支持多卡操作: 无电源,自带天线, ...

  10. Osmocom-BB 相关资源、知识分享

    1.在layer1层添加了解析sniffer的代码 参考http://git.osmocom.org/osmocom-bb/log/?h=luca/gsmmap)osmocom-bb/src/targ ...