淘宝客户端一面(第二次)
不得不说,不愧是淘宝,面的真的好难。
1、线程池底层创建的原理
2、lifecycle的原理
lifecycle是一种观察者设计模式,第一步是要注册观察者,观察者可以有多个,当被观察者生命周期变化的时候就轮询所有的观察者,把生命周期变化的事件一个一个分发给观察者。注册观察者是通过LifecycleRegistry实现的,通过addabserver函数添加到一个map容器里面。在activity里面绑定了一个空的Fragment感知和分发生命周期,Activity的生命周期执行的时候会对应的执行ReportFragment的生命周期方法。ReportFragment在生命周期方法中通过调用dispatch(Lifecycle. Event)方法分发的生命周期状态, 最终调用对应Activity的LifecycleRegistry对象的handleLifecycleEvent方法完成生命周期的分发。lifecycle中定义了状态机state,通过状态机我们就知道被观察者是因为执行了哪个生命周期导致了State状态发生了变化。在handleLifecycleEvent方法中先把执行生命周期后的state状态同步到lifecycle中。判断mState被观察者处于的状态,是不是比观察者保存的状态小,判断被观察者执行了什么生命周期方法,调用backwardPass或者forwardPass函数。然后遍历整个map容器中的观察者,调用观察者的diapatchEvent方法就能让观察者的onStateChange方法得到执行
3、handler postdeleay原理
延时消息会和当前消息队列里的消息头的执行时间对比,如果比头时间靠前,则会成为新的消息头,否则就依次遍历,寻找合适的位置插入延时消息。
4、HandlerThread原理
1、线程池底层创建的原理
2、lifecycle的原理
lifecycle是一种观察者设计模式,第一步是要注册观察者,观察者可以有多个,当被观察者生命周期变化的时候就轮询所有的观察者,把生命周期变化的事件一个一个分发给观察者。注册观察者是通过LifecycleRegistry实现的,通过addabserver函数添加到一个map容器里面。在activity里面绑定了一个空的Fragment感知和分发生命周期,Activity的生命周期执行的时候会对应的执行ReportFragment的生命周期方法。ReportFragment在生命周期方法中通过调用dispatch(Lifecycle. Event)方法分发的生命周期状态, 最终调用对应Activity的LifecycleRegistry对象的handleLifecycleEvent方法完成生命周期的分发。lifecycle中定义了状态机state,通过状态机我们就知道被观察者是因为执行了哪个生命周期导致了State状态发生了变化。在handleLifecycleEvent方法中先把执行生命周期后的state状态同步到lifecycle中。判断mState被观察者处于的状态,是不是比观察者保存的状态小,判断被观察者执行了什么生命周期方法,调用backwardPass或者forwardPass函数。然后遍历整个map容器中的观察者,调用观察者的diapatchEvent方法就能让观察者的onStateChange方法得到执行
3、handler postdeleay原理
延时消息会和当前消息队列里的消息头的执行时间对比,如果比头时间靠前,则会成为新的消息头,否则就依次遍历,寻找合适的位置插入延时消息。
4、HandlerThread原理
全部评论
相关推荐
06-23 12:08
广州大学 硬件测试 小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享