歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中關於Activity的生命周期

Android中關於Activity的生命周期

日期:2017/3/1 11:06:52   编辑:Linux編程

關於Activity的生命周期,這個應該在很多Android書上都有講的,自己寫的目的是根據自己測試得出的結論,一方面是方便自己復習,另一方面是做個記錄。

Activity1簡稱A1,Activity2簡稱A2,通過Activity1創建Activity2,Activity2啟動後完全遮擋Activity1.

1.啟動A1,點擊A1上的按鈕創建A2,然後點擊A2中的按鈕返回A1,方法調用順序如下:

A1 OnCreat() -> A1 OnStart() -> A1OnResume() -> A1 OnPause() -> A2 OnCreat() -> A2 OnStart() -> A2 OnResume() -> A1 OnStop() -> A2 OnPause() -> A1 OnCreat() -> A1 Onstart() -> A1 OnResume() -> A2 OnStop()

2.啟動A1,點擊A1上的按鈕創建A2,然後點擊Android自帶的返回按鈕,從A2返回A1,方法調用順序如下:

A1 OnCreat() -> A1 OnStart() -> A1OnResume() -> A1 OnPause() -> A2 OnCreat() -> A2 OnStart() -> A2 OnResume() -> A1 OnStop() -> A2 OnPause() -> A1 OnRestart() -> A1 Onstart() -> A1 OnResume() -> A2 OnStop() -> AC2 OnDestroy()

用紅色標注的地方不同,為什麼不同呢?因為在A2上點擊返回A1是創建了一個新的Activity,而通過“返回按鈕”返回A1則是根據出棧的原理。如下圖所示:

AC2未能完全遮擋住AC1的情況是這樣的,點擊AC1上的按鈕,彈出AC2:

A1 OnCreat() -> A1 OnStart() -> A1OnResume() -> A1 OnPause() -> A2 OnCreat() -> A2 OnStart() -> A2 OnResume() -> A1 OnStop() -> A2 OnPause() -> A1 OnResume() -> A2 OnStop() -> AC2 OnDestroy()

AC2中的按鈕Go to First 是一條finish()指令,跟模擬器上的返回鍵效果是一樣的。

Copyright © Linux教程網 All Rights Reserved