Android多线程入门学习
(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多线程入门学习的更多相关文章
- java多线程入门学习(一)
java多线程入门学习(一) 一.java多线程之前 进程:每一个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销.一个进程包括1--n个线程. 线程:同一类线程共享代码 ...
- android的入门学习
android 入门学习. 活动:就是一个包含应用程序的用户界面的窗口.目的就是与用户交互. 意图:就是能够将来自不同应用程序的不同活动无缝连接在一起工作的"胶水",确保这些任务执 ...
- Android SurfaceView入门学习
学习资料: Android 开发群英传 搜索学习资料时,搜到了罗升阳老师的Android视图SurfaceView的实现原理分析,老罗老师写的一系列博客,一年前开始学习Android时看不懂,现在依然 ...
- Android测试入门学习
一,Android测试新人练习——安装及文件传输 [课前准备] Android测试环境搭建 1.下载并安装JDK: http://www.oracle.com/technetwork/java/jav ...
- c# 多线程——入门学习
1. 概念介绍 1.1 线程 线程是操作系统能够进行运算调度的最小单位,包含在进程之中,是进程中的实际运作单位.一条线程指的时进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不 ...
- Java多线程学习(一)Java多线程入门
转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79640870 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...
- Android多线程源码学习笔记一:handler、looper、message、messageQueue
最近在学习Android多线程相关知识的源码,现在把自己的笔记整理一下,写出来加深印象. Android多线程通讯的核心是handler.looper.message.messageQueue,这篇文 ...
- Android M中 JNI的入门学习
今年谷歌推出了Android 6.0,作为安卓开发人员,对其学习掌握肯定是必不可少的,今天小编和大家分享的就是Android 6.0中的 JNI相关知识,这是在一个安卓教程网上看到的内容,感觉很不错, ...
- Android Camera2 拍照入门学习
原文:Android Camera2 拍照入门学习 学习资料: 肾虚将军android camera2 详解说明 极客学院android.hardware.camera2 使用指南 Android 5 ...
随机推荐
- APP store 审核注意点
磨刀不误砍柴工.作为手机应用开发者,你需要向应用商店提交应用审核,迅速通过审核可以让你抢占先机.对苹果iOS应用开发者来说尤其如此.苹果应用商店的审核近乎吹毛求疵,下面这些清单可以让你知道苹果会在哪些 ...
- 一篇文章教你学会基础的HTML
html是学习做网页的基础,漂亮的网页与布局就是由有些html代码组成,大家看完这篇文章就可以简单的了解html了,多写多练 如果你不致力于成为美工的话,那么作为开发人员,可以读懂HTML.必 ...
- druid简介
Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. 支持的数据库 Druid支持所有JDBC兼容 ...
- Chapter 5: Container
Chapter 5: Container A container is a module that processes the requests for a servlet and populates ...
- nginx添加未编译安装模块
链接:http://taokey.blog.51cto.com/4633273/1318719
- javascript笔记5-BOM
Javascript应用的平台很多,不仅仅针对Web.在Web中使用Javascript,BOM(browser object model,浏览器对象模型)是核心. BOM提供了很多对象,用于访问浏览 ...
- Intellij IDEA Help
https://www.jetbrains.com/idea/help/intellij-idea.html https://www.jetbrains.com/idea/help/creating- ...
- Ubuntu安装samba的问题
问题: root@ubuntu:~# apt-get install samba 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装.如果 ...
- js控制打印 转的
很多时候,我们在做系统的时候要做打印功能,打印在js中其实很简单,不过这个很简单的代码并不能满足我们的特定需求,比如我们需要打印的表单在很多文字的中间,或者文字中包含一些广告或者图片什么的,这就很难用 ...
- PHP中的文件下载
文件下载:用<a href="链接"></a>这种是下载,但对于浏览器能解释的文件类型此下载非彼下载.向服务器请求的时候:1.协议和版本2.头信息3.请求的 ...