活动的生命周期
Android使用任务(Task)来管理活动,一个任务就是存放在返回栈中的活动的集合。栈是后进先出的结构,系统总是显示位于栈顶的活动,当一个活动调用finish时就会出栈。
活动的状态
1、运行状态:位于栈顶的活动,系统最不愿意收回这种活动的资源
2、暂停状态:不再栈顶的活动,但是因为栈顶活动的大小缘故而仍然可见的活动,因为仍然可见所以系统也一般不会收回这部分的资源。
3、停滞状态:不处在栈顶且不可见的活动,系统有可能收回资源。
4、销毁状态:出栈后的活动,系统会优先收回这部分的资源。
活动的函数
1、onCreate()
在活动第一次被创建时调用。
2、onStart()
活动由不可见变为可见时调用。
3、onResume()
活动准备好与用户进行交互时调用,此时活动需要处于返回栈的栈顶,并处于运行状态。
4、onPause()
要启动或恢复其他活动时使用,使本活动暂停,回收部分资源。
5、onStop()
在活动完全不可见时调用。它和onPause的区别在于如果新活动是对话框式的活动,则onPause会执行,而onStop不会执行。
6、onDestroy()
活动被销毁前调用,调用后活动被销毁。
7、onRestart()
停止的活动重新启动活动。
活动的生存期
1、完整生存期
onCreate到onDestroy间是完整生存期。
2、可见生存期
onStart到onStop间是可见生存期。
3、前台生存期
活动在onResume到onPause间为前台生存期。这个期间活动是运行状态,且可交互。
临时数据的保存
当一个活动被停止时,可能活动会被后台杀死,当重新进入这个活动时不是调用onRestart而是调用了onStart重新建立了活动,可以使用onSaveInstanceState()对临时数据进行保存。这个方法第一个参数是键值,第二个参数是实际传递的数据。