Android类中定义了七个回调方法分别是:
1. onCreate( ) 活动第一次创建时调用,在这个方法中进行初始化操作。
2. onStart( ) 这个实在活动又不可见到可见的时候调用。
3. onResume( ) 在活动准备好和用户交互的时候调用,此时活动已经位于返回栈的顶端,并且处于运行状态。
4. onPause( ) 系统准备去启动另一个或者恢复另一个活动时调用。当启动一个对话框,失去焦点时也会调用此方法。通常在这个方法中将一些消耗CPU的资源释放掉,并且在此时保存关键数据。
5. onStop( ) 当活动完全不可见的时候调用。
6. onDestory( ) 此方法在销毁之前调用,之后会变为销毁状态。
7. onRestart( ) 其在活动由停止状态变为运行状态之前调用,即活动被重新启动。
在这七个方法中,除了onRestart( )方法,其他的六个方法对应了活动的三种生存期:
onCreate( )-onDestory( ):完整的生存期
onStart( )-onStop( ):可见生存期
onResume( )-onPause( ):前台生存期(此时可以与用户进行交互)
下面利用Activity A和B相互操作A调用的方法:
当启动Activity A时会调用:onCreate( )、onStart( )、onResume( )
当A启动Acitivity B时,A会调用:onPause( )、onStop( )
当按下Back键时,A会调用:onRestart( )、onStart( )、onResume( )
此时启动一个Dialog时,A并不会调用:onPause( )
再次按下Back键时,A调用:onResume( )
最后退出程序:onPause( )、onStop( )、onDestory( )
启动模式共有四种:standard、singleTop、singleTask和singleInstance
(1)standard模式:
默认启动模式,每启动一个activity就会创建一个新的实例放到栈顶。
(2)singletop模式:
首先判断要启动的Activity是否已经位于栈顶,如果已经存在则直接复用,如果不是,需要重新创建一个新的实例放入栈顶。
(3)singleTask模式:
此模式可以保证某个Activity在整个应用程序中仅有一个实例。此模式时,当创建一个新的Activity时会检查栈中是否已存在这个Activity的实例,如果已经存在则直接复用,并将其之上的所有实例全部出栈,否则就会重新创建一个新的实例。
(4)singleInstance模式:
此模式中,Activity会启动一个新的任务栈来管理Activity实例,无论从哪一个任务栈中启动这个Activity,该实例在整个系统中都仅仅会存在一个。此模式是为了在不同的程序中共享同一个Activity实例。
Fragment生命周期图:
Fragment和Activity的生命周期对比:
因为Fragment不可以单独存在,它是一种可以嵌入到活动的UI片段,相对于Activity是一种更加轻量级更灵活的的展示方式,因此它的生命周期和activity的生命周期相关联。