(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. HDU 4087 三维上的平移缩放旋转矩阵变化

    题目大意: 就是根据它给的程序的要求,不断平移,缩放,旋转三维的点,最后计算出点的位置 这里主要是要列出三种转换方式的齐次矩阵描述 平移translate tx ty tz1 0 0 00 1 0 0 ...

  2. POJ 1700 F(Contest #3)

    Description A group of N people wishes to go across a river with only one boat, which can at most ca ...

  3. android之DOM生成与解析

    DOM解析不适合于进行大数据文件的操作,DOM解析适合于对文件进行修改和随机存取的操作. DOM生成 //判断一下是否存在sdcard if(!Environment.getExternalStora ...

  4. 自定义的dialog

    自定义的dialog  其中包含置顶 删除 和取消 下面的是BaseDialog package com.free.csdn.view.dialog; import android.app.Dialo ...

  5. switch… case 语句的用法(二)

    总结来说:switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break.都不匹配找d ...

  6. JVM-class文件完全解析-魔数

    魔数(Magic Number) 魔数和Class文件的版本. 一个文件能否被Java虚拟机接受,不是通过文件的扩展名来进行识别的,而是通过魔数来进行识别.这主要是基于安全方面的考虑,因为文件的扩展名 ...

  7. Javascript计数器

    <!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...

  8. jQuery 常用动画

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 监听cell 滑动到 摸个分区

    //滑动过程中 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { //    NSLog(@"000---%ld", ...

  10. kali linux SET工具包

    尝试使用SET生成Teensy脚本是出现问题 1.出现错误 [!] Something went wrong, printing the error: [Errno 2] No such file o ...