Android主线程looper是死循环问题
来源:互联网 发布:黑客军团第三季 知乎 编辑:程序博客网 时间:2024/06/07 15:29
Android主线程是loop的死循环,这个死循环其实是使用了epoll机制,即消息队列中没有消息的时候,是处于睡眠状态,不占用cpu资源的。
由于主线程是死循环,所以主线程的所有操作都得借助于消息队列,例如事件处理,例如界面的刷新等,所有的在主线程执行的代码都是如此。利用这个特性可以做很多的事情,例如统计帧率等。
为什么主线程是死循环,而不发生ANR。
首先需要明确ANR发生的条件,发生ANR的条件的是系统无法及时响应时间,而looper循环是不断的从消息队列中取消息,当系统中有事件输入的时候,其实是通过Binder线程来把相应的事件添加到消息队列中,这样系统是可以响应的,所以不会发生ANR。主线程这个loop死循环是这个程序的基础。
阅读全文
0 0
- Android主线程looper是死循环问题
- Android中 主线程 Looper.loop() 死循环?
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
- 关于Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死
- Android为什么主线程不会因为Looper.loop()里的死循环卡死
- Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
- 为什么Looper死循环不阻塞主线程
- 为什么在主线程的Looper.looper死循环不会卡死
- 为什么在主线程的Looper.looper死循环不会卡死
- Android面试:主线程中的Looper.loop()一直无限循环为什么不会造成ANR?(转)
- Android面试:主线程中的Looper.loop()一直无限循环为什么不会造成ANR?(转)
- android 非主线程内使用Looper
- 机器学习保险行业问答开放数据集: 2. 使用案例
- Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤
- jvm中堆和栈应用小结
- 《统计学习方法》 感知机Python 原始形式实现
- lua编译成动态库
- Android主线程looper是死循环问题
- 疯狂Java笔记之对象及其内存管理
- STM32F103ZE移植STemWin532
- Java:关于接口(interface)详解;接口与抽象类的区别
- 沉浸式状态栏
- easyui学习:datagrid显示图片并预览的实现方法
- eclipse android 项目快速 转移到android studio
- 最易理解的二分匹配KM算法讲解
- Linux虚拟机CentOS6.5: 安装telnet