上一篇说道连接多个活动之间的“桥梁”Intent,活动简单说就是展示给用户的界面。在我们操作界面的时候,界面存在显示、消失和毛孔、模糊(列入有弹框显示时)等状态,这些状态就是活动的“生命”的展示,活动的生命周期会一直伴随着一个活动,从显示到消失。
android的活动是可以叠加的,我们每开启一个新的活动,就会覆盖在原本的活动上面,当我们点击返回键是会返回上一个活动,使上一个活动重新显示出来(活动不是被重新创建的,只是显示出了之前创建的)。由此可知activity是由任务栈(Task)的形式来管理的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back Stack)。栈是一种后进先出的数据结构,系统总是会把栈顶的活动显示给用户。当我们启动一个App的时候首先显示给我们的就是系统创建的第一个活动,位于栈顶显示给用户,之后我们跳转到一个新的界面时,新的活动入栈,成为新的栈顶活动,而之前的活动就位于新的下面。当我们点击back返回键时,新的栈顶活动被销毁,则位于下面的活动又重新变成了栈顶活动。我这只是简单的讲解,这其中活动的状态会发生变化,每个活动最多有四种状态:分别为运行状态、暂停状态、停止状态、销毁状态。它们很好理解,当一盒活动位于返回栈的栈顶时的状态为运行状态;当一个活动不再处于栈顶位置但仍然可见时为暂停状态(比如弹出体格窗口时);当一个活动离开栈顶位置变为完全不可见时(但仍然位于栈中)就是停止状态;当一个活动从返回栈中移除后就变成了销毁状态。
下面就要讲一下活动的生存期了,activity中定义了7个回调方法,覆盖了活动生命周期的每一个环节。以下是那7个方法。
*onCreate() 它会在活动第一次被创建的时候调用。在这个活动中我们需要完成对活动的初始化操作。
*onStart() 它会在活动由不可见变得可见的时候调用。】
*onResume() 它会在活动活动准备好和用户进行交互(见面)的时候调用。此时活动已位于栈顶,处于运行状态。
*onPause() 它会在系统准备去启动或者恢复另一个活动的时候调用。
*onStop() 它会在活动完全不可见得时候调用。
*onDestory() 它会在活动被销毁之前调用,之后活动的状态将变为销毁状态。
*onRestart() 它会在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。
上面的7个方法除去onRestart()方法,其他都是两两相对的,从而可以分为三个生命周期。
完整生存期 活动在onCreate()和onDestroy()之间所经历的就是完整生存期。
可见生存期 活动在onStart()和onStop()之间所经历的就是可见生存期。
前台生存期 活动在onResume()和onPause()之间所经历的就是前台生存期。
活动的生命周期的代码有些长但是都很简单我就不一一演示了。