活动的生命周期要从这个返回栈(Back Stack)说起:
首先很重要的一句话:每一个应用程序application 都有一个自己的返回栈。 但是在singleInstance启动模式下,多个应用程序会访问同一个返回栈。可以达到共用activity的目的。
Android 通过Task来管理活动,一个任务就是一组Activity集合,默认的standard启动模式会在活动启动的时候,放入栈顶。按下back,或者调用finish()方法就去销毁一个活动。
从活动状态来看,可以分为四个状态:
1运行状态:处于栈顶
2暂停状态:不再处于栈顶,但仍然可见,活动就进入了暂停状态,比如对话框下的活动
3停止活动:当一个活动不再处于栈顶,且完全不可见的时候,就进入了停止状态。
4销毁状态:当一个活动从返回栈移除后就变成了销毁状态。系统会最倾向于回收于这种状态的活动,从而保证手机的内存充足。
1 onCreate():
活动创建的时候或者活动被回收后,重新创建的时候调用,完成初始化工作,以及加载布局,绑定事件。
2 onStart():
不可见变为可见的时候调用
3 onResume():
活动准备好和用户交互时调用,此时的活动要满足的条件:处于栈顶的,并处于运行状态
4 onPasuse():
系统准备去启动或者恢复另一个活动的时候调用。
5 onStop():
这个方法在活动完全不可见的情况下调用,只要还是可见的时候,都不会调用。
6 onDestory():
活动销毁时调用
7 onRestart():
在停止状态变成运行状态之前,先调用Restart()在调用onStart()方法。
如果将活动分为3种生命周期:
可以分为:
1完整生命周期:
活动在onCreate(), 和onDestory() 方法之间所经历的,就是完整生命周期,在onCreate中初始化,在onDestory中释放内存
2可见生命周期:
活动在onStart() 和onStop()中所经历的,可见生命周期,可以通过这两个方法管理用户可见的资源
3前台生命周期
onResume 和 onPause之间 活动一直处于运行状态,处于栈顶,此时活动可以和用户交互,平时接触的就是这个生命周期的互动