返回栈
Android是用Task(任务)来管理活动的。一个Task就是一组存放在栈里的活动的集合,这个栈被称为Back Stack(返回栈)。
系统总是会显示处于栈顶的活动给用户。
活动的状态
-
运行状态
当一个活动位于返回栈的栈顶时 -
暂停状态
但一个活动不再处于栈顶,但仍然可见时 -
停止状态
当一个活动不再处于栈顶,并且不可见时 -
销毁状态
从返回栈中移除后
活动的生存期
Activity类定义了7个回调方法,覆盖活动生命周期的每一个环节。
-
onCreate()
活动第一次被创建的时候调用。在这个方法中完成活动的初始化操作,例如加载布局、绑定事件等。 -
onStart()
活动由不可见变为可见的时候调用。 -
onResume()
活动准备好和用户进行交互的时候调用。此时活动一定位于返回栈的栈顶,并处于运行状态。 -
onPause()
系统准备去启动或者恢复另一个活动的时候调用。 -
onStop()
活动完全不可见的时候调用。 -
onDestroy()
活动被销毁之前调用。之后活动状态变为销毁状态。 -
onRestart()
活动由停止状态变为运行状态之前调用。
onPause()
和 onStop()
的区别:如果启动的新活动是一个对话框式的活动,那么onPause()
方法会得到执行,而onStop()
方法并不会被执行。
3种生存期
除了onRestart()
,其他方法都是两两相对的。可将活动分为3种生存期。
-
完整生存期 活动在
onCreate()
和onDestroy()
方法之间所经历的。一般情况,onCreate()
完成初始化操作,onDestroy()
完成释放内存的操作。 -
可见生存期 活动在
onStart()
和onStop()
方法之间所经历的。活动对于用户总是可见的,即便有可能无法和用户进行交互。onStart()
对资源进行加载,onStop()
对资源进行释放,保证处于停止状态的活动不会占用过多内存。 -
前台生存期 活动在
onResume()
和onPause()
方法之间所经历的。活动处于运行状态。
网友评论