欢迎访问我的个人博客,原文链接:http://wensibo.top/2017/07/03/Binder/ ,未经允许不得转载!
大家好,今天想与大家一起分享的是Activity。我们平时接触的最多的就是Activity了,作为四大组件中最为重要的老大,Activity究竟是如何启动的呢?这篇文章将会从源码的角度为大家进行全方位的解析,为了方便大家理解整个的过程,我会用流程图的方式将整个过程串起来,希望对大家有所帮助。
开始吧!
一般我们启动Activity有两种方法,这里我就不再详细说这两种方法的用法了,不过他们都是调用了同样的一个逻辑startActivity
。所以我们分析Activity的启动流程就从这个方法开始。
public void startActivity(Intent intent, @Nullable Bundle options) { if (options != null) { startActivityForResult(intent, -1, options); } else { startActivityForResult(intent, -1); } }
可以看到尽管startActivity()有多种重载方式,但是最终调用的还是startActivityForResult
,所以我们只需要看startActivityForResult里面的实现逻辑即可。这里需要注意的一点就是调用了startActivityForResult方法时传入的一个参数为
延伸阅读
学习是年轻人改变自己的最好方式