1、生命周期
1)Acitivity三种状态
a. 运行:activity在最前端运行
b. 停止:activity不可见,完全被覆盖;
c. 暂停:activity可见,但前端还有其他activity<>,注意:在当前Activitiiy弹出的对话框是Activity的一部分,弹出时,不会执行onPause方法;
2)生命周期相关的方法(都是系统自动调用,都以on 开头):
a. onCreate: 创建时调用,或者程序在暂停、停止状态下被杀死之后重新打开时也会调用;
b. onStart: onCreate之后或者从停止状态恢复时调用
c. onResume: onStart之后或者从暂停状态恢复时调用,从停止状态恢复时由于调用onStart,也会调用onResume(界面获得焦点);
d. onPause: 进入暂停、停止状态,或者销毁时会调用(界面失去焦点);
e. onStop: 进入停止状态,或者销毁时会调用;
f. onDestroy: 销毁时调用;
g. onRestart: 从停止状态恢复时调用;
3)生命周期图解:
应用启动时,执行onCreate onStart onResume,退出时执行:onPause onStop onDestroy;
2、横竖屏切换与信息的保存恢复
切换横竖屏时,会自动查找layout-port 、layout-land中的布局文件,默认情况下,切换时,将执行摧毁 onPause onStoponDestroy,再重置加载新的布局onCreate onStartonResume;切换时如果要保存数据, 可以重写: onSaveInstanceState();
恢复数据时, 重写: onRestoreInstanceState();
固定横屏或竖屏: android:screenOrientation="landscape"
横竖屏切换, 不摧毁界面(程序继续执行) android:configChanges="orientation|keyboardHidden|screenSize"
保存信息状态的相关方法:
a. onSaveInstanceState:在Activity被动的摧毁或停止的时候调用(如横竖屏切换,来电),用于保存运行数据,可以将数据存在在Bundle中;
b. onRestoreInstanceState:该方法在Activity被重新绘制的时候调用,例如改变屏幕方向,onSavedInstanceState可为onSaveInstanceState保存的数据