(1)ActivityA创建,然后ActivityA跳转到ActivityB,然后从ActivityB返回ActivityA过程中两个Activity的生命周期流程?
onCreate(A)->onStart(A)->onResume(A)->onPause(A)->onCreate(B)->onStart(B)->onResume(B)->onStop(A)->onPause(B)->onRestart(A)->onStart(A)->onResume(A)->onStop(B)->onDestroy(B)
当Activity的onStop()方法被调用后,Activity退入了后台,如果这时有其它优先级高的程序需要内存,Activity很可能被杀死。如果Activity被杀死,则从ActivityB返回ActivityA后Activity需要重新创建;如果ActivityA没有被杀死,则从ActivityB返回ActivityA遵循上面的生命周期流程。
(2)ActivityA创建,然后切换成横屏的生命周期流程?
没有写onSaveInstanceState()方法的情况:
onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume(),即横竖屏切换时会先销毁当前Activity,再重新创建一个横/竖屏。
写了onSaveInstanceState()方法的情况:
onCreate()->onStart()->onResume->onPause()->onSaveInstanceState()->onStop()->onDestroy()->onCreate()->onStart()->onResume()。
(3)按back键返回,当前Activity执行的生命周期方法?
onPause()->onStop()->onDestroy()。
(4)按home键到手机桌面,当前Activity执行的生命周期方法?
onPause()->onStop()
(5) Activity生命周期方法调用时界面是否可见?
onCreate():不可见
onStart()、onResume():可见
onPause():部分可见(被一个半透明页面遮盖的时候)
onStop():不可见
onDestroy():不可见
注:Activity生命周期主要依赖于从创建到销毁和界面是否有焦点。