Android activity的生命周期java
activity类处于android.app包中,继承体系以下: android
1.java.lang.Object 网络
2.android.content.Context app
3.android.app.ApplicationContext ide
4.android.app.Activityspa
activity是单独的,用于处理用户操做。几乎全部的activity都要和用户打交道,因此activity类建立了一个窗口,开发人员能够经过setContentView(View)接口把UI放到activity建立的窗口上,当 activity指向全屏窗口时,也能够用其余方式实现:做为漂浮窗口(经过windowIsFloating的主题集合),或者嵌入到其余的 activity(使用ActivityGroup)。大部分的Activity子类都须要实现如下两个接口: .net
为了可以使用Context.startActivity(),全部的activity类都必须在AndroidManifest.xml文件中定义有相关的“activity”项。线程
activity类是Android 应用生命周期的重要部分。xml
Activity生命周期 blog
在系统中的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,再也不放到前台,直到新的Activity退出为止。
Activity有四种本质区别的状态:
下面的图显示了Activity的重要状态转换,矩形框代表Activity在状态转换之间的回调接口,开发人员能够重载实现以便执行相关代码,带有颜色的椭圆形代表Activity所处的状态。
在上图中,Activity有三个关键的循环:
Activity的整个生命周期都定义在下面的接口方法中,全部方法均可以被重载。全部的Activity都须要实现 onCreate(Bundle)去初始化设置,大部分Activity须要实现onPause()去提交更改过的数据,当前大部分的Activity也须要实现onFreeze()接口,以便恢复在onCreate(Bundle)里面设置的状态。
public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}