[b]android activity 測試[/b]
[b]測試結果 正常情況下 [/b]
[table]
|1|一個activity從建立到顯示調用順序|onCreate->onStart->onResume //onResume開始時也會被調用,寫在onResume中應隻有恢複顯示和建立共有的代碼
|2|按傳回鍵退出activity|onPause->onStop->onDestroy
|3|從應用管理中“強行停止”|onPause->onStop //無Destroy
|4|按傳回退出後長按home鍵調出應用 或 點選應用重新進入|onCreate->onStrat->onResume
|5|按首頁鍵退出 然後長按home鍵調出應用 或 點選應用重新進|onStrat->onResume //按首頁鍵挂背景 無需onCreate
|6|finish()操作|onPause->onStop->onDestroy
|7|menu,submenu,dialog顯示并傳回|無操作 //無onPause
|8|切換到另一個activity|1.onPause->2.onCreate->2.onStart->2.onResume->1.onStop //居然是切換着來的
|9|8步驟後 按傳回鍵|2.onPause->1.onStart->1.onResume->2.onStop->2.onDestroy //疑問:什麼時候單獨用onResume?
|10|9步驟後 切換到同一個activity|1.onPause->2.onCreate->2.onStart->2.onResume->1.onStop
|11|10步驟後 按首頁鍵傳回|2.onPause->2.onStop
|12|11步驟後 重新點選應用進入|2.onStart->2.onResume
|13|應用中來電|onPause->onStop //同activity切換
|14|13步驟 後挂斷傳回應用|onStart->onResume //同activity切換
|15|當activity2 設定 android:theme="@android:style/Theme.Dialog" 切換到activity2顯示|1.onPause->2.onCreate->2.onStart->2.onResume->2.onStop->2.onDestroy
|16|15步驟後 按傳回鍵傳回|2.onPause->1.onResume //應該注意一下 Destroy後才調用的pause.
[/table]
[b]測試結論[/b]
[table]
|1|activity從建立到顯示|onCreate->onStart->onResume
|2|activity finish或者是按傳回鍵 使其不顯示|onPause->onStop->onDestroy //重新進入需要
onCreate->onStart->onResume
|3|activity 按首頁鍵不顯示|onPause->onStop //重新進入隻需要onStart->onResume
|4|activity間切換|1.onPause->2.onCreate->2.onStart->2.onResume->1.onStop
|5|4步驟後按傳回鍵傳回前一個activity |2.onPause->1.onStart->1.onResume->2.onStop->onDestroy //下次再intent進入 得onCreate
|6|menu dialog|無任何操作 //有些說的不可互動時調用onPause 奇怪 應該是我了解錯了?
|7|打開一個
android:theme="@android:style/Theme.Dialog" 的activity|1.onPause->2.onCreate->2.onStart->2.onResume->2.onStop->2.onDestroy ;注意:直接調用onStop onDestroy
|8|7步驟後按傳回鍵回到前一個activity|2.onPause->1.onResume//直接調用onPause 真亂 估計還有其他特殊情況
[/table]
測試用代碼
[b]activity1.java[/b]
[b]main.xml[/b]
[b]activity2.java[/b]
[b]main2.xml[/b]