在Android中,Activity的啟動流程大致如下:
- 調用startActivity(intent)方法或者startActivityForResult(intent, requestCode)方法來請求啟動目標Activity。
- 系統會檢查目標Activity是否存在,以及當前應用是否具有訪問目標Activity的權限。
- 如果目標Activity存在并且有權限訪問,系統會為該Activity創建一個新的實例,并將其添加到Activity棧中。
- 系統會調用目標Activity的onCreate()方法來進行初始化,這個方法會在Activity第一次被創建時調用。
- 目標Activity的onCreate()方法完成后,系統會調用onStart()方法,表示Activity正在被啟動。
- 然后,系統會調用onResume()方法,表示Activity已經可見并且可以與用戶進行交互。
- 如果啟動的是另一個Activity并且需要返回結果,那么當前Activity將會進入onPause()狀態,等待返回結果。
- 當目標Activity完成其任務后,會調用setResult(resultCode, data)方法將結果返回給調用的Activity。
- 返回結果后,目標Activity會調用finish()方法來銷毀自身,并將結果返回給調用的Activity。
- 調用的Activity會重新進入onResume()狀態,并通過onActivityResult()方法獲取返回的結果。
- 如果啟動的是另一個Activity并且不需要返回結果,那么當前Activity將會進入onStop()狀態,等待用戶再次回到該Activity。
- 當用戶回退到該Activity時,系統會調用onRestart()方法重新啟動該Activity。
- 然后,系統會調用onStart()方法和onResume()方法,使Activity重新進入可見并且可交互的狀態。