阅读本文大概需要 4 分钟。
上一篇,我们了解到Android里触摸事件是如何一步一步转入UI线程的message queue里被执行的,这种事件是由外部事件触发的。
我接着对小张说:其实Android里还有一种UI queue里的事件更为大家熟知,你天天写代码都在与之打交道,你知道吗?
小张有些丈二和尚摸不着头脑,想了一会儿问道:能给一些提示吗?
我提示道:它是Android系统框架层产生的事件,你在四大组件上写的代码均无法逃脱它的掌控!
小张虽然不是很清楚为什么,但是由于提示太明显,问道:你说的难道是四大组件的生命周期?
我肯定道:没错,比如你天天写Activity,在其onCreate, onResume等生命周期里写业务代码,那你知道四大组件的生命周期是怎么来的吗?
小张怀疑到:难道它们也是handler消息机制触发的吗?
我说道:你没有听错!就连四大组件的生命周期也遵循了这个事件驱动模型,它们均是由Android系统框架层产生相应的message扔进UI queue触发的。
小张紧接着问道:如果这样的话,UI线程里必然存在一个handler在处理对应的message,以辨别这个message是哪个组件,是什么生命周期阶段。
我点了点头,道:你说得没错!你在Android源码里见过这个handler吗?
小张摇了摇头:我平时业务做得比较多,对Android系统框架层的源码看得比较少。
我听了后说道:那你平时可得多关注关注一些底层原理类的东西了,业务是永远在变动,而越是底层的东西越是相对稳定的,只有弄清楚基础才能知其所以然,更好的为业务服务。
小张听后,连忙点头:你说得是,回去一定恶补这块短板。
我继续说道:好了,Android源码里有个ActivityThread内部类H就是刚才所说的handler了,你看看它的源码,你就知道它都在干些什么了。
<