Activity和Fragment的生命周期

1.活动的生命周期

Android类中定义了七个回调方法分别是:

1. onCreate( ) 活动第一次创建时调用,在这个方法中进行初始化操作。

2. onStart( ) 这个实在活动又不可见到可见的时候调用。

3. onResume( ) 在活动准备好和用户交互的时候调用,此时活动已经位于返回栈的顶端,并且处于运行状态。

4. onPause( ) 系统准备去启动另一个或者恢复另一个活动时调用。当启动一个对话框,失去焦点时也会调用此方法。通常在这个方法中将一些消耗CPU的资源释放掉,并且在此时保存关键数据。

5. onStop( ) 当活动完全不可见的时候调用。

6. onDestory( ) 此方法在销毁之前调用,之后会变为销毁状态。

7. onRestart( ) 其在活动由停止状态变为运行状态之前调用,即活动被重新启动。

在这七个方法中,除了onRestart( )方法,其他的六个方法对应了活动的三种生存期:

onCreate( )-onDestory( ):完整的生存期

扫描二维码关注公众号,回复: 3530707 查看本文章

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( )

2.活动的启动模式

启动模式共有四种:standard、singleTop、singleTask和singleInstance

(1)standard模式:

默认启动模式,每启动一个activity就会创建一个新的实例放到栈顶。

(2)singletop模式:

首先判断要启动的Activity是否已经位于栈顶,如果已经存在则直接复用,如果不是,需要重新创建一个新的实例放入栈顶。

(3)singleTask模式:

此模式可以保证某个Activity在整个应用程序中仅有一个实例。此模式时,当创建一个新的Activity时会检查栈中是否已存在这个Activity的实例,如果已经存在则直接复用,并将其之上的所有实例全部出栈,否则就会重新创建一个新的实例。

(4)singleInstance模式:

此模式中,Activity会启动一个新的任务栈来管理Activity实例,无论从哪一个任务栈中启动这个Activity,该实例在整个系统中都仅仅会存在一个。此模式是为了在不同的程序中共享同一个Activity实例。

3.Fragment的生命周期

Fragment生命周期图:

Fragment和Activity的生命周期对比:

 

 因为Fragment不可以单独存在,它是一种可以嵌入到活动的UI片段,相对于Activity是一种更加轻量级更灵活的的展示方式,因此它的生命周期和activity的生命周期相关联。

猜你喜欢

转载自blog.csdn.net/nishuosh2/article/details/80685162