Activity 生命周期全解

Activity 生命周期全解1.正常情况下 生命周期如图: onCreate()  表示Activity正在被创建,  参数为onSaveInstanceState保存的状态信息 onRestart()  Activity正在重

Activity 生命周期全解

1.正常情况下

生命周期如图:

  • onCreate()  表示Activity正在被创建,  参数为onSaveInstanceState保存的状态信息
  • onRestart()  Activity正在重新启动
  • onStart()   activity变为在屏幕上对用户可见时调用
  • onResume()  开始与用户交互时调用
  •         onWindowFocusChanged  activity获取到焦点 可以进行动画等UI操作
  • onPause()   Activity正在停止,失去焦点
  •         onWindowFocusChanged  activity失去焦点
  • onStop()   Activity即将停止,且处于不可见状态,
  • 如果内存紧张,不会触发 onStop,  所以保存状态信息是应该在onPause时做
  • onDestory()  Activity正在被销毁

特殊情况:

1.屏幕旋转

onPause->onSaveInstanceState->   onStop-> onDestory

-> onCreate-> onStart()-> onRestoreInstanceState()->onResume()

避免重建activity:

AndroidManifest文件中的对应Activity中配置android:configChanges=”keyboardHidden|orientation|screenSize”,

设置之后旋转屏幕:onConfigurationChanged()被回调

2.上层被透明(Translucent )Theme 的Activity或者DialogActiivty 或者Dialog覆盖

onPause->恢复的时候 onResume 

3.onSaveInstanceState调用时机

  1. 当用户按下HOME键时。
  2. 长按HOME键,选择运行其他的程序时(即进入后台管理界面)。 
  3. 按下电源按键(关闭屏幕显示)时。 
  4. 从activity A中启动一个新的activity时。
  5. 屏幕方向切换时,例如从竖屏切换到横屏时。

总结来说就是在 未经用户主动操作 (finish()/back)而 有可能 导致Activity 销毁(亦可理解为Activity异常的销毁)的情况下, 系统会调用该方法以便保存状态在将来恢复 。

4. onRestoreInstanceState什么时机被调用?

onRestoreInstanceState(Bundle savedInstanceState)只有在activity确实是被系统回收,重新创建activity的情况下才会被调用。

5.非Standard 启动方式的生命周期 

详见:juejin.cn/post/705086…

不管是singleTop singleTask singleInstance,

如果是相邻复用:onPause() onNewIntent()和onResume()  

如果是相隔复用:onNewIntent(), onStart(), onResume()

今天的文章Activity 生命周期全解分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16953.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注