Android源码学习笔记:Context、ActivityThread和Activity的生命周期

原文链接:https://blog.csdn.net/tianyl_melodie/article/details/53424116

总结:

①在应用启动的时候,首先会创建一个进程process,然后创建ActivityThread这个对象。

②根据我们之前学习的Handler,可以知道,在ActivityThread的main方法中,会创建一个Looper和MessageQueue对象。

③在创建完Looper和MessageQueue对象后,还会创建一个ApplicationThread对象,并且拿到ActivityManagerService的远程代理对象,实现和ActivityManagerService的通信。

④创建一个H类的实例,而这个H类实际上是一个Handler对象。

⑤调用Looper.loop()方法,开始轮询消息队列。

⑥然后当要启动一个Activity的时候,通过ActivityManagerService通知ApplicationThreadNative,调用到onTransact方法。

⑦在onTransact中进行判断,调用到对应的实现类ApplicationThread的scheduleLaunchActivity方法。

⑧在scheduleLaunchActivity方法中,先创建对应的参数信息ActivityClientRecord,然后通过queueOrSendMessage发送消息。 ⑨Handler收到消息,在handleMessage中进行处理,在handleMessage中拿到对应的ActivityClientRecord进行,然后作为参数传入,并调用方法handleLaunchActivity方法。

⑩在handleLaunchActivity中通过mInstrumentation调用对应的生命周期。 到此,我们对于Context的实现类,、ActivityThread的创建和Activity的生命周期的基本分析也算是告一段落了,当然,对于Activity生命周期的分析并没有完全结束。

猜你喜欢

转载自blog.csdn.net/qq_34602647/article/details/82825414