当前位置: 代码迷 >> 综合 >> Activity中回调函数(onXxx)的执行时机
  详细解决方案

Activity中回调函数(onXxx)的执行时机

热度:46   发布时间:2023-12-28 08:49:14.0

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重复传递

 

 

  相关解决方案