Activity作为四大组件之一,是使用最频繁的一种组件,承担着直接与用户交互的角色。
(一)生命周期
(1)onCreate:生命周期的第一个方法,表示activity正在被创建。
(2)onRestart:表示activity正在重新启动。当当前activity从不可见状态重新变为可见状态时,该方法就会被调用。
(3)onStart:表示activity正在被启动。此时activity已经可见,但是还没有出现在前台,还无法和用户交互。
(4)onResume:此时activity已经可见,并出现在前台并开始活动。
(5)onPause:表示activity正在停止,一般onStop紧接着就会被调用。
(6)onStop:表示activity即将停止。
(7)onDestroy:表示activity即将被销毁,也是activity生命周期中的最后一个回调。
(二)启动模式
1 、任务栈:
(1)任务栈是一种“后进先出”的数据结构。在默认情况下,当我们多次启动同一个activity时,系统会创建多个实例并把他们一一放入任务栈中。每按一次back键,就会有一个activity出栈。
(2)当任务栈中无任何activity时,系统就会回收这个任务栈。
(3)TaskAffinity,这个参数标示了一个activity所需要的任务栈的名字。默认情况下,所有activity所需的任务栈的名字为应用包名,也可以为每个activity单独指定TaskAffinity属性。
2 、activity有四种启动模式:standard,singleTop,singleTask,singleInstance。
(1)standard:标准模式,也是系统的默认模式。在此模式下,每次启动一个activity都会重新创建一个实例,不管这个实例是否已经存在。在这种模式下,谁启动了这个activity,那么这个activity就会运行在启动它的那个activity所在的栈中。
(2)singleTop:栈顶复用模式。在此模式下,如果新activity已经处于任务栈的栈顶,那么此activity不会被重新创建。
(3)singleTask:栈内复用模式,这是一种单实例模式。在此模式下,只要activity在一个栈中存在,那么多次启动此activity都不会重新创建实例。
(4)singleInstance:单实例模式。这是一种加强的singleTask模式,它除了具有singleTask模式的所有特性外,具有此种模式的activity只能单独地位于一个任务栈中。