1.Activity生命周期
(1) onCreate:表示Activity正在被创建,在这个方法中我们可以做一些初始化工作,比如加载界面布局资源和初始化Activity所需要的数据。
(2)onStart:Activity正在被启动,无法与用户交互。
(3)onRestart:Activity正在被重新启动,一般情况下当Activity从不可见状态重新变为可见状态时会被调用。
(4)onResume:Activity可见,可以与用户交互。
(5)onPause:Activity正在停止,正常情况下,紧接着onStop会被调用(特殊:当前台透明或者说Activity可见)。在这个方法可以做一些数据存储、停止动画等工作。
(6)onStop:Activity即将停止,可以做一些回收工作。
(7)onDestroy:Activity即将销毁,回收共作和释放资源。
异常情况:在Activity异常终止情况下,系统会调用onSaveInstanceState来保存当前Activity的状态,这个方法会在onStop之前掉用,当Activity被重新重新创建后会调用onRestoreInstanceState并可以获取onSaveInstanceState保存的Bunlde。
2.Activity启动模式
(1)standard:标准模式,系统默认。每次启动一个Activity都会重新创建新的实例。在这种模式下,谁启动了这个Activity,那么这个Activity就运行在启动它的那个Activity所在的栈中。
(2)singleTop:栈顶复用模式,如果新Activity已经位于任务栈的栈顶,那么此Activity不会被重新创建,eg:任务栈目前为ABCD,这个时候在次启动D那么任务栈依然为ABCD。
(3)singleTask:栈内复用模式。这是一种单例模式,只要Activity在一个栈中存在,那么多次启动该Activity不会重新创建实例。当再次启动这个Activity任务栈会移除该Activity前的其他实例。eg:当前任务栈ABCD,当再次启动B,这个时候任务栈为AB。
(4)singleInstance:单实例模式。加强版singleTask,除了singleTask的所有特性,还加一点该模式的Activity只能单独位于一个任务栈中。