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 ...
随机推荐
- POJ 1741 树的点分治
题目大意: 树上找到有多少条路径的边权值和>=k 这里在树上进行点分治,需要找到重心保证自己的不会出现过于长的链来降低复杂度 #include <cstdio> #include & ...
- java udp网络编程
import java.net.*; /* 通过UDP传输发送文字数据 1.建立socket服务 2.提供数据,并封装到数据包中 3.通过sokect服务的发送功能,将数据包发送出去 4.关闭资源 * ...
- 利用ps指令查看某个程序的进程状态
ps -ef是查看所有的进程,然后用grep筛选出你要的信息. eg.
- 如何搭建MVC + EF 框架
1.搭建MVC框架 1.1 VS2010:需要安装WPI 安装 ASP.NET MVC 4 和Visual Studio 2010 系统必备组件 如果上述链接无法打开,请访问:http://www.a ...
- String性能优化
String 使用的优化建议 其他 String 使用的优化建议 以上我们描述了在我们的大量文本分析案例中调用 String 的 subString方法导致内存消耗的问题,下面再列举一些其他将导致内存 ...
- VM虚拟机中Ubuntu无法连接网络
之前Ubuntu是可以上网的,但是今天打开后发现上不了网了,经过一番折腾,弄好了,记录下. 方案一:将网络连接设置为自定义NAT VM ->设置-> 硬件->网络适配器 这么已修改就 ...
- Longest Substring Without Repeating Characters ---- LeetCode 003
Given a string, find the length of the longest substring without repeating characters. For example, ...
- 渐变背景 css3渐变效果及代码
渐变背景及代码 http://uigradients.com/#Behongo
- HDU 4160
http://acm.hdu.edu.cn/showproblem.php?pid=4160 大娃娃可以套在小娃娃外面(各边严格小),问最后最少得到几个娃娃 题目中的娃娃可以看做点,嵌套关系可以看做有 ...
- alt text 与 tooltip区别
在做工具的Accessiblity测试时, 对于image对象,一直分不清它的alt属性与tooltip属性的区别与用法, 从网上查了下, 比较认同这样的观点: alt属性: alternative ...