//Activity生命周期
********完整生命周期开始******************************************
onCreate(Bundle savedInstanceState)只调用一次,适合数据初始化
*********可视生命周期开始***********************
onStart();
****前台生命周期开始*****
onResume();可见,处于运行状态,可响应用户操作
当另一个Activity被创建
1-->另一个Activity为对话框或透明,即未完全挡住之前的Activity
onPause();暂停状态,按返回调用onResume,可能被系统杀死
2-->另一个Activity完全挡住之前的Activity
****前台生命周期结束*****
onStop();停止状态,按返回调用onRestart->onStart(),可能被系统杀死
*********可视生命周期结束***********************
当用户点击返回键、切屏、键盘显示隐藏切换
onDestory();销毁状态
********完整生命周期结束*****************************************
当遇到突发情况(内存不足,用户按Home键)由系统销毁一个Activity,onSaveInstanceState(Bundle
outState)会被调用,此时可根据需要重写该方法保存一些临时数据(持久化数据的保存一般在onPause()中执行),另外,
Activity由运行状态进入暂停或停止状态该方法也会被调用,若用户主动销毁一个Activity,如按返回键,该方法不会被调用
重写方法onRestoreInstanceState(BundlesavedInstanceState)可获得保存的临时数据
默认情况下,当 切屏或 键盘显示隐藏 变化时都会销毁当前Activity,创建新的Activity.如果不希望创建新的Activity
实例,可以按如下配置Activity
<activityandroid:name="MainActivity"android:configChanges="keyboardHidden
|orientation">
上面的android:configChanges属性指定了要捕获 屏幕切屏和键盘显示隐藏变化,当捕获到这些变化后会调用Activity的
onConfigurationChanged()方法;
默认情况下(未配置android;configChanges属性)
竖屏切横屏,销毁当前Activity之后,创建一个新的Activity实例
横屏切竖屏,销毁当前Activity之后,创建一个新的Activity实例,新的Activity实例很快就被销毁,接着又会创建一个新的
Activity实例,如果只希望创建一个实例,可以配置
android:configChanges="orientation"
在Android中,应用的响应被活动管理器ActivityManager和窗口管理器Window Manager所监视,当应用5秒内
未响应时,系统会认为应用无响应,弹出错误信息,所以,耗时操作一般都放在子线程中进行