一个应用程序组件都有生命周期, 它们由android 初始化, 直到这些实例被销毁.
一个Activity 主要有三个状态:
- 位于当前任务栈的顶部,处于运行状态
- 失去焦点,但仍然对用户可见,处于暂停状态,即在它之上有另外一个Activity.仍然处于存活状态,但当系统处于极低内存的情况下,系统仍然可以杀死这个Activity
- 完全被另一个Activity 覆盖,处于停止状态,仍然保留所有的状态和成员信息.则系统经常杀死这种状态的ACtivity
当一个activity 从这个状态转变到另一个状态时,它被下列protected 方法所通知:
public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
Activity的生命周期:
所有的activity都必须实现onCreate() 便于对象在第一次实例化时进行初始化设置.
大多实现onPause()方法 , 主要是在页面发生变化时,能将重要的数据持久的保存到应用程序的数据存储中.
所有的activity生命周期方法的实现都必须先调用其父类的重写方法.
我们可以看到屏幕翻转时,Android系统把ActivityLife这个Activity先杀死(具体顺序是先暂停、后关闭再销毁),然后再启动(具体顺序是先创建,后启动再恢复)。通过这个例子我们也清楚的看到了,是Android系统而不是程序员在控制Activity的生命周期。
创建a onCreate onStart onResume
a-b a-onPause b-onCreate onStart onResume a-stop
b-a b-onPause a-onRestart onStart b-onStop onDestroy()