您的位置:首页 > 其它

Activity生命周期详解

2015-10-13 09:45 204 查看


首次启动

onCreate –> onStart –> onResume


按下返回按键

onPause –> onStop –> onDestroy


按Home键

onPause –> onSaveInstanceState –> onStop


再次打开

onRestart –> onStart –> onResume


屏幕旋转

如果你不做任何配置

启动Activity会执行如下方法:

onCreate –> onStart –> onResume

之后旋转屏幕,则Activity会被销毁并重新创建,之后便会执行如下方法:

onPause –> onSaveInstanceState –> onStop –> onDestroy –> onCreate –> onStart –> onRestoreInstanceState –> onResume

在AndroidManifest配置文件里声明android:configChanges属性

默认屏幕旋转会重新创建,当然可以通过在配置文件里加上如下代码:

android:configChanges="keyboardHidden|orientation|screenSize"(sdk>13时需加上screenSize)


这个时候再旋转屏幕便不会销毁Activity,这时候再旋转屏幕可以看到只会执行onConfigurationChanged方法,有什么在屏幕旋转的逻辑可以重写这个方法:

public void onConfigurationChanged(Configuration newConfig) {
if (newConfig.orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
// TODO:
}
super.onConfigurationChanged(newConfig);
}



FirstActivity打开SecondActivity

FirstActivity打开SecondActivity,这时候FirstActivity生命周期的方法是这样的: onPause –> onSaveInstanceState –> onStop, 这个时候在SecondActivity按返回键,FirstActivity会有以下集中情况:

正常情况下会执行: onRestart -> onStart -> onResume

当系统由于要回收内存而把 activity 销毁时

Activity在onPause或者onStop状态下都有可能遇到由于突发事件系统需要回收内存,之后的onDestroy方法便不会再执行,这时候会执行: onCreate –> onStart –> onRestoreInstanceState –> onResume
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: