ANDROID_MARS学习笔记_S02重置版_001_Hander\Looper\Message\Thread\ThreadLocal
2016-02-23 17:06
435 查看
一、
上述代码的执行流程为
1.Looper.prepare()会执行sThreadLocal.set(new Looper(quitAllowed))
2.而new Looper(quitAllowed)会执行,
(1)mQueue = new MessageQueue(quitAllowed);
(2)mThread = Thread.currentThread();
3.new Handler()会执行
(1)mLooper = Looper.myLooper();
(2)mQueue = mLooper.mQueue;
4.而myLooper();会执行return sThreadLocal.get();,所以保证handler当前线程只有一个looper
5.Looper.loop();会执行
(1)final MessageQueue queue = me.mQueue;
(2)for循环Message msg = queue.next();
(3)msg.target.dispatchMessage(msg);
* class LooperThread extends Thread { * public Handler mHandler; * * public void run() { * Looper.prepare(); * * mHandler = new Handler() { * public void handleMessage(Message msg) { * // process incoming messages here * } * }; * * Looper.loop(); * } * }
上述代码的执行流程为
1.Looper.prepare()会执行sThreadLocal.set(new Looper(quitAllowed))
2.而new Looper(quitAllowed)会执行,
(1)mQueue = new MessageQueue(quitAllowed);
(2)mThread = Thread.currentThread();
3.new Handler()会执行
(1)mLooper = Looper.myLooper();
(2)mQueue = mLooper.mQueue;
4.而myLooper();会执行return sThreadLocal.get();,所以保证handler当前线程只有一个looper
5.Looper.loop();会执行
(1)final MessageQueue queue = me.mQueue;
(2)for循环Message msg = queue.next();
(3)msg.target.dispatchMessage(msg);
相关文章推荐
- android 开机自动启动
- Android中aidl的解析和使用
- android开发中如何结束所有的activity
- android LruCache内存缓存源码解析
- Android开发之TabHost篇01
- 在Android app中实现九(n)宫格图片连续滑动效果
- Android Activity类详解(一)
- Android中Preference的使用以及监听事件分析 .
- 强烈推荐转载-Android 性能测试
- 【转】Android日常开发60条经验
- Android C++向java传递不定长且不同类型的参数
- android 轻松搞定标题随scrollview滑动变色
- Android笔记:导航栏和状态栏的透明度设置
- dp px 互相转化
- Android--向SD卡读写数据
- android php 交互
- android关于静态广播无法接收2
- Android 获取设备所有应用信息
- Android知识图表
- android中对/data/data/<package name>/files下文件的读写操作