activity是Android四大组件之一,主要和用户进行交互,使用activity时会回调activity的一些方法。activity的运行模式分为正常模式和异常模式。当用户在android手机上点击一个应用程序后这个应用程序就会被启动。每一个应用程序都会有一个application对象,当应用程序启动是这个application对象就会被创建。在这个application对象创建后,应用程序就开始创建activity。
activity是一个容器,在这个容器上可以定义UI,但是activity并不是UI,activity上会有一个window对象,在window对象上可以定义若干个view对象,也就是形形色色的UI。在activity的oncreate方法中首先会调用setcontentview方法,如果不调用,activity启动后只有一个黑乎乎的窗体。activity上还有很多的业务逻辑,所以说activity是一个容器。
创建一个activity首先要重写oncreate方法,创建完一个activity会执行onstart方法,这时的activity变得可见。当activity被暂停之后通过onresume方法唤醒activity。onstop方法在activity停止时调用,在销毁时会执行ondestoty方法。
在系统资源紧张时,activity有可能被杀死,按照进程的优先级杀死进程,如果此时activity作为一个前台进程,基本上是不会被杀死的。 在activity意外停止(系统故障或者被杀死)时,会使用Bundle保存数据,当activity恢复时,可用使用Bundle恢复数据。保存数据可用重写以下两个方法
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
Log.v(TAG, savedInstanceState.getString("data"));
super.onRestoreInstanceState(savedInstanceState);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("data", "example");
super.onSaveInstanceState(outState);
}
恢复数据时直接从Bundle对象拿数据。有一个有意思的现象就是对手机进行反转,也就是切换横屏和竖屏时,activity会结束,然后重新创建。