2015.11.4 上午================
Activity 的生命周期
*对于Andoird开发者来讲非常重要
了解生命周期,可以写出更流畅的程序并减少资源的浪费。
一、回退栈(返回栈)
android中的活动时层叠的状态,新的活动会覆盖到原来的活动之上。
按下Back键,最上层的活动销毁,下面的一个活动就会重新显示出来。
Android是使用Task(任务) 来管理活动的,一个Task就是一组存放在栈中的活动,
这个栈称之为回退栈
二、Activity的四种状态
1.运行状态:
当活动处于栈顶时或者获得用户的焦点时
此时就是运行状态
2.停止状态:
当一个Activity被完全覆盖时,用户不可见。
这个活动还有可能存在,但是有可能被回收。(当系统内存不足时回收)
3.暂停状态:
当一个Activity不再处于栈顶时,但依然可见,此时就是暂停状态。
当系统内存不足时有可能被回收。
4.销毁状态
当一个Activity从回退栈中移除时,就变成了销毁状态,会被系统回收。
三、Activity生命周期方法
1.onCreate() 创建
这个方法会在Activity第一次被创建时调用,用于一些初始化工作和加载布局。
2.onStart() 启动
这个方法在活动由 不可见状态 变为 可见状态 时被调用
停止状态---->运行状态
3.onResume() 继续
这个方法在活动变为 可见状态前 被调用
onResume()---->运行状态
4.onPause() 暂停
这个方法在 准备启动 或 恢复 另一个活动时会被调用
5.onStop() 停止
这个方法在 完全不可见时 会被调用
运行状态------>停止状态
6.onDestory()
这个方法在活动被销毁之前调用。
7.onRestart()
这个方法在活动由 停止状态变为运行状态时调用。
四、活动被停止时,保存状态
当活动停止时,有可能被系统回收,如果此时有一些数据保存在该活动中
这些数据也会消失。
Activity 为我们提供了一个 onSaveInstanceState
当Activity被回收时会调用这个方法,主要用于保存数据。
1.使用onSveInstanceState中的参数 Bundel 来保存数据
2.调用Bundle.putXX("key","value")来保存数据
3.在onCreate(Bundle savedInstaceState)方法中
使用XX value = savedInstaceState.getXX("key");
======================2015.11.4 下午================
五、活动的四种启动模式
*设置启动模式:
在<activity>标签中 android:launchMode
1.standard 标准 默认的启动模式
每当启动一个活动,这个活动都会出现在栈顶的位置,
并且每次启动都会创建该活动的一个对象。
2.singleTop
这种模式当活动已经在栈顶时,并不会创建该活动的一个新的对象。
3.singleTask
这种模式在每次启动活动前会检查回退栈中是否有该活动的对象。
如果有会直接使用,并且把在这个活动之上的所有活动统统踢出。
4.singleInstance
这种模式启动的活动会在一个新的回退栈中,用来解决活动共享的问题
========================================================================================