BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #30715同步于 2016/5/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

Activity和UI线程的关系

tt88050643
2016/5/25镜像同步2 回复
我的理解中UI线程是Android虚拟机启动后运行的主线程,它会去Manifest文件中识别出那个要启动的主Activity,然后经过一系列的xxxService启动这个activity,然后会回调这个activity各种生命周期方法,在onCreate中的setContent中用一个xml解析器去解析布局文件生成view树和设置一些回调,view树经过一些列的onMeasure onLayout onDraw方法后绘制到屏幕上。。。 此时activity栈中就存在了一个activity,UI线程也运行着(主要是Looper机制的循环吧???)。 那么UI线程和activity的关系是什么? 是不是当activity栈中的所有activity都finish后这个UI线程就退出了? 那要是我handler.postDelay(new Runnable...,10分钟),在UI线程10分钟后去执行一个任务,当10分钟内我退出了所有的activity,是不是这个runnable对象就不会得到执行了? 问题有点多,望指教。
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
dss886机器人#1 · 2016/5/25
每个App启动的时候都会启动一个UI线程(Main Thread),Activity的所有生命周期都是在UI线程执行的,事实上四大组件都是在UI线程执行的。 1. 是不是当activity栈中的所有activity都finish后这个UI线程就退出了? 不是。因为除了Activity还有其他组件在主线程内执行。 2. 那要是我handler.postDelay(new Runnable...,10分钟),在UI线程10分钟后去执行一个任务,当10分钟内我退出了所有的activity,是不是这个runnable对象就不会得到执行了? 不是。理由同上,退出所有的Activity并不会导致主线程退出,消息队列内的消息会被正常执行。
a206206机器人#2 · 2016/5/26
没有必然联系。 UI线程退出应该是在进程被销毁的时候。