歡迎訪問(wèn)我的個(gè)人博客,原文鏈接:http://wensibo.top/2017/07/03/Binder/ ,未經(jīng)允許不得轉(zhuǎn)載!
大家好,今天想與大家一起分享的是Activity。我們平時(shí)接觸的最多的就是Activity了,作為四大組件中最為重要的老大,Activity究竟是如何啟動(dòng)的呢?這篇文章將會(huì)從源碼的角度為大家進(jìn)行全方位的解析,為了方便大家理解整個(gè)的過(guò)程,我會(huì)用流程圖的方式將整個(gè)過(guò)程串起來(lái),希望對(duì)大家有所幫助。
開(kāi)始吧!
一般我們啟動(dòng)Activity有兩種方法,這里我就不再詳細(xì)說(shuō)這兩種方法的用法了,不過(guò)他們都是調(diào)用了同樣的一個(gè)邏輯startActivity
。所以我們分析Activity的啟動(dòng)流程就從這個(gè)方法開(kāi)始。
public void startActivity(Intent intent, @Nullable Bundle options) { if (options != null) { startActivityForResult(intent, -1, options); } else { startActivityForResult(intent, -1); } }
可以看到盡管startActivity()有多種重載方式,但是最終調(diào)用的還是startActivityForResult
,所以我們只需要看startActivityForResult里面的實(shí)現(xiàn)邏輯即可。這里需要注意的一點(diǎn)就是調(diào)用了startActivityForResult方法時(shí)傳入的一個(gè)參數(shù)為
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式