工作笔记 11
来源:互联网 发布:java培训课程内容 编辑:程序博客网 时间:2024/06/07 07:15
开始使用 工作区域去多屏幕切换
linux super+s
win10 开启 Win + Ctrl + D 关闭Win + Ctrl + F4 切换 Win + Ctrl + D +左/右
win tab 显示所有任务栏、工作区
Android中
android只允许一个线程绘制UI。比如在activity的oncreate方法中沉睡了线程则会影响了 ui绘图时间
UI 操作通常会通过投递消息来实现,只有往正确的 Looper 投递消息才能得到处理,实现绘图,对于 UI 来说,这个 Looper 一定是运行在 UI 线程中。
消息需要在 Looper 中处理,Looper 又需运行在 Thread 中,所以不能随随便便在非 UI 线程中进行 UI 操作。
在哪个线程创建Handler 就使用那个线程的looper
作为所有控件基类的 view 提供了 post 方法,用于向 UI Thread 发送消息,并在 UI Thread 的 Looper 中处理这些消息,而 UI Thread 一定有 Looper 这是由 ActivityThread 来保证的:
public final class ActivityThread {
...
final Looper mLooper = Looper.myLooper();
}
在我们写的main ACtivity中 会在此开辟一个真正的UI线程 ActivityThread (真正的UI线程,重要性也不言而喻)
在其中生成了 mLooper
final Looper mLooper = Looper.myLooper(); 且在activity源码中使用到了 Looper.myLooper() != mMainThread.getLooper();
最后 ActivityThread.java 的 main() 方法 中进行了 Looper.loop(); 循环。
猜测: 对于不同activity来讲 所使用的ActivityThread是同一个,ActivityThread是单例,
完整流程
ActivityThread 定义了 looper ------view父类使用这个looper,创建了mHandler,post了消息 return attachInfo.mHandler.post(action);
最后----ActivityThread,做了loop()循环,在loop()循环中更新了试图。
Android实战简易教程-第六十七枪(android动画实现窗口抖动效果)
view 20992行
0 0
- 工作笔记 11
- 工作笔记--2015-11-26
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- 工作笔记
- Retrofit 2.0: 最好的Android HTTP客户端库的一次重大改变
- C语言结构体的初始化
- Python: Neural Networks
- iOS动画《第一篇》
- xampp集成环境自定义404页面失败解决办法
- 工作笔记 11
- [光速与物理]光的立方体效应
- Matlab拟合工具箱的几个误差参数说明
- sigar进行JAVA后台系统资源监控错误
- var s=+newDate();
- Maven主仓库中找不到包的解决办法(如org.restlet.jee not found)
- 关于文件上传服务器开发
- ecshop session 无法保存 ecshop 不用session_sart session经常保存不了 经常失效
- Python 函数