android中的线程(三上)
来源:互联网 发布:软件过程财富库 编辑:程序博客网 时间:2024/05/22 10:41
转载请注明出处:http://blog.csdn.net/u011569040/article/details/45081347
主要内容:
1.如何下载Android源代码
2.ThreadLocal初步介绍
3.Handler相关代码执行流程
Sources for Android SDK就是源代码
然后到电脑的D:\Android\Android SDK\sources\android-19,找到源代码
三(中)主要内容:
1.Looper当中的Loop()方法的作用
2.什么是Message对象的Target
3.处理一个Message的方法
三(下)主要内容:
1.Handler的post(Runnabler)方法
2.Runnable的运行机制
3.post方法和sendMessage方法的区别
import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;//private static Message getPostMessage(Runnable r)//1.该方法完成了两个操作,第一生成了一个Message对象,第二将r对象赋值给Message对象的callback属性//第一个问题,如何能够把一个Runnable对象放置在消息队列当中?实质上是生成了一个Message对象,并将r赋值//给Message对象的callback属性,然后再将Message对象放置在消息队列当中//第二个问题,Looper取出了携带了r对象的Message对象后,干了些什么?取出Message对象之后调用了dispatchMessage//方法,然后判断Message的callback属性是否为空,此时的callback属性有值,所以执行了handleCallback(Message msg)//在该方法当中执行了msg.callback().run();public class MainActivity extends Activity {private Button button;private TextView textview;private Handler handler = new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textview=(TextView) findViewById(R.id.textview);button = (Button)findViewById(R.id.buttonId );button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {TestThread tt = new TestThread();tt.start();}});}class TestThread extends Thread{@Overridepublic void run() {super.run();Runnable r = new Runnable() {@Overridepublic void run() {//当前线程的名称为main,说明这个Runnable是运行在主线程里面的System.out.println("当前线程的名称"+Thread.currentThread().getName());//这里可以写上更新UI的代码}};//post(r)方法将r对象放置在消息队列当中,Looper(主线程中)从消息队列当中取出了r对象//我们的猜测是:取出r对象之后//1.Thread t = new Thread(r)//2.t.start()//根据测试的结果可以看出,该思路是错误的//我们的问题是Looper取出了r对象之后,干了些什么?handler.post(r);}}}
0 0
- android中的线程(三上)
- 有关Java中的线程、有关Android中的线程(上)
- Android中的线程间通信(三)
- android中的线程(二上)
- java38java中的线程(三)
- Android线程管理(三)
- android 线程池(上)
- Android中的 事件流----浅析安卓中的动与静(三) 线程间通讯
- C#中的线程(三)多线程
- C#中的线程(三)多线程
- C#中的线程(三)使用多线程
- android中的线程(一)
- Android中的线程(一)
- Android中的属性,是怎么应用到控件上的(三)
- Android线程间通信(三):Looper
- Android线程池(三)常用封装
- android线程管理三(ThreadLocal)
- Android线程三、Handler
- 联想,逆向(创新技法6)
- POJ 题目3694 Network(tarjan,LCA,求桥)
- static静态变量说明
- Gem5中如何限制模拟运行的指令数或者周期数
- 21mm Chinese glossy brown film faced shuttering formwork plywood
- android中的线程(三上)
- 硅谷跳槽工具箱指南(转载)
- 对SDN的误解
- 栈的输入和输出判断
- redhat enterprise linux 6.4 64位系统安装oracle11g,笔记
- 基于FFmpeg的TS音视频解码流程之视频解码
- 最大公约数及最小公倍数
- windows7硬盘安装Ubantu14.10 LTS双系统
- Android自定义Button的点击效果