組件 -- Activity -- 啟動流程

相關鏈接

Activity啟動流程

Activity啟動流程:
1、應用通過startActivity或是startActivityForResult方法向ActivityManagerService發(fā)出啟動請求。
2、ActivityManagerService接收到啟動請求后會進行必要的初始化以及狀態(tài)的刷新,然后解析Activity的啟動模式,為啟動Activity做一系列的準備工作。
3、做完上述準備工作后,會去判斷棧頂是否為空,如果不為空即當前有Activity顯示在前臺,則會先進行棧頂Activity的onPause流程退出。
4、棧頂Activity執(zhí)行完onPause流程退出后開始啟動Activity。如果Activity被啟動過則直接執(zhí)行onRestart->onStart->onResume過程直接啟動Activity(熱啟動過程)。否則執(zhí)行Activity所在應用的冷啟動過程。
5、冷啟動過程首先會通過Zygote進程fork出一個新的進程,然后根據(jù)傳遞的”android.app.ActivityThread”字符串,反射出該對象并執(zhí)行ActivityThread的main方法進行主線程的初始化。
6、Activity所在應用的進程和主線程完成初始化之后開始啟動Activity,首先對Activity的ComponentName、ContextImpl、Activity以及Application對象進行了初始化并相互關聯(lián),然后設置Activity主題,最后執(zhí)行onCreate->onStart->onResume方法完成Activity的啟動。
7、上述流程都執(zhí)行完畢后,會去執(zhí)行棧頂Activity的onStop過程。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容