Handler 与 Looper
2016-02-15 12:32
357 查看
在RemoteDisplay构造时,
mLooper(new ALooper), ALooper会新建一个thread, 然后负责消息的分发,
通过registerHander 来指定message的处理, 一个looper可以注册多个handler,
mLooper->registerHandler(mSource);
looper()->registerHandler(playbackSession);.........
而消息发到底由谁处理, 则是构造AMessage时通过第二个参数来指定message的handler对象
sp<AMessage> notify = new AMessage(kWhatPlaybackSessionNotify, this);
在wfd 中, mediaplayerservice通过remotedisplay new ALooper, 然后通过ALooper这个新线程
来处理wfd 对象相关的message, 基本所有代码功能都是通过消息机制来调用
但有部分setparam功能及回调功能是运行在别的线程中,与ALooper消息处理不是同一个线程
mLooper(new ALooper), ALooper会新建一个thread, 然后负责消息的分发,
通过registerHander 来指定message的处理, 一个looper可以注册多个handler,
mLooper->registerHandler(mSource);
looper()->registerHandler(playbackSession);.........
而消息发到底由谁处理, 则是构造AMessage时通过第二个参数来指定message的handler对象
sp<AMessage> notify = new AMessage(kWhatPlaybackSessionNotify, this);
在wfd 中, mediaplayerservice通过remotedisplay new ALooper, 然后通过ALooper这个新线程
来处理wfd 对象相关的message, 基本所有代码功能都是通过消息机制来调用
但有部分setparam功能及回调功能是运行在别的线程中,与ALooper消息处理不是同一个线程
相关文章推荐
- CodeForces 622D Optimal Number Permutation
- Linux配置nginx图片服务器+ftp服务器
- Redhat linux 小结
- linux+windows双系统安装
- linux的vm相关参数介绍
- adb shell 不支持Ctrl + C, TAB, DOWN/UP 等按键问题解决方案
- Linux学习笔记(七)--文件系统管理
- Linux进程与线程的区别
- 如何在linux上上传文件
- [转]MYSQL高可用方案探究(总结)
- 《Linux别名深层原理以及命令行重要快捷键》
- 关于centos6系统报出的kernel bug的解决方案
- Linux下安装和使用boost库
- Linux学习笔记(六)--权限管理
- linux下 open() write() read() close函数
- 嵌入式linux学习-ARM MMU工作原理分析
- centos6.5添加新网卡配置
- android学习笔记-android系统架构
- VirtualBox下Linux虚机扩容
- Linux系统如何查看版本信息