返回栈:
1.Android是使用任务(Task)管理活动的,一个任务就是一组存放在栈里的活动的集合。
2.每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。
3.每当我们按下Back键或调用finish()方法去销毁一个活动时,处于栈顶的活动会出栈。这是前一个入栈的活动就会重新处于栈顶位置,系统总是会显示处于栈顶的活动给用户。
活动状态:
1.运行状态:当一个活动位于返回栈的栈顶时,活动就处于运行状态。
2.暂停状态:当一个活动不再处于栈顶但仍然可见时(*?),活动就处于暂停状态。
3.停止状态:当一个活动不再处于栈顶,并且完全不可见时,就进入了停止状态。(当缺少内存时回收)
4.销毁状态:当一个活动从返回栈移除后,就进入了销毁状态。(优先回收)
*注:不是每一个活动都会占满整个屏幕,例如对话框。
活动的生存期:
- onCreate():
- 活动第一次创建时被调用
- 在这个方法中完成初始化活动,如加载布局。
- onStart():活动由不可见变为可见时调用
- onResume():活动准备好和用户交互时调用,此时活动一定位于返回栈的栈顶,并且处于运行状态。
- onPause():系统准备启动或者恢复另一个活动时调用。
- 通常在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据。
- 但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用。
- onStop():
- 这个方法在活动完全不可见的时候调用。
- 它和onPause()方法主要的区别在于,如果启动的新活动是一个对话框类型的活动,那么onPause()方法会得到执行,而onStop()不会。
- onDestroy();
- 这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。
- onRestart();
- 这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。