Activity生命周期有关的回调函数
查看更多
备份与恢复
onSaveInstanceState()
1、当用户按下手机home键的时候。
2、长按手机home键或者按下菜单键时。
3、手机息屏时。
4、FirstActivity启动SecondActivity,FirstActivity就会调用,也就是说打开新Activity时,原Activity就会调用。
5、默认情况下横竖屏切换时。
当竖屏切换到横屏时,系统会销毁竖屏Activity然后创建横屏的Activity,所以竖屏被销毁时,该方法就会被调用。
onRestoreInstanceState()
只有在activity被系统回收或是销毁的时候,重新创建activity的情况下才会被调用。如:横竖屏切换
onPause -> onSaveInstanceState -> onStop -> onDestroy -> onCreate -> onStart -> onRestoreInstanceState -> onResume
点击返回,不会触发onRestoreInstanceState,因为activity没有被系统回收,因此onRestoreInstanceState不会被调用。
@Overrideprotected void onSaveInstanceState(Bundle outState) {//TODO 在outState中存放数据super.onSaveInstanceState(outState);}@Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {super.onRestoreInstanceState(savedInstanceState);//TODO 从savedInstanceState中取出数据}
多次调用startActivity()启动activityA
如果activityA没有创建,则activityA走回调:onCreate -> onStart -> onResume
如果activityA已经创建但没有在前台,则activityA走回调:onStart -> onResume
如果activityA已经创建且在前台,则activityA走回调: onResume
多次调用startActivity()后,getIntent()仍然是最开始的那个,onNewIntent(intent)中是新的
Activity的4种启动模式
Activity启动模式、Intent重复传递