[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]