activity生命週期:
activity啓動方式:
standard: 任務棧每次啓動任務都創建activity實例
singleTop: 如果activity實例處於棧頂,則啓動相同任務不創建實例,否則啓動任務創建實例
singleTask: 任務棧中各個任務只能有一個對應的activity實例,啓動任務時若棧中已有實例,則彈出棧頂的其他實例(直到該實例在棧頂),否則創建實例
singleInstance: 獨立的一個任務棧,只包含一個任務的一個實例
獲取activity的返回參數:
startActivityForResult(Intent intent, int requestCode)方法啓動需要返回數據的activity,並重寫onActivityResult(int requestCode, int resultCode, Intent data)方法接收返回的數據,當啓動的activity運行結束後會回調該方法。
requestCode:用於區分請求的數據
resultCode: 用於區分返回的數據
activity的finish()方法:
activity執行完成或關閉時,調用finish()方法,只是將任務棧最上層activity出棧,佔用的資源並不一定馬上釋放。因爲此時並不一定執行onDestroy()方法,onDestroy()方法由系統回調,調用時機是不確定的,一旦調用onDestroy()方法,activity就真正銷燬了。