基础知识篇(二)Activity之生命周期变化

发布时间:2024年01月12日

Activity作为四大组件之一,App切换、新的Activity启动与关闭以及配置发生变化等等都会引起Activity生命周期发生变化

在这里插入图片描述

一、常规模式下

场景1

A 启动 B 页面

//A启动B页面后
A:onPause
B:onCreate
B:onStart
B:onResume
A:onStop


//然后关闭B页面后 
B:onPause
A:onRestart
A:onStart
A:onResume
B:onStop
B:onDestroy
场景二
//回到桌面或者切换到其他App
//直接锁屏
A:onPause
A:onStop

//再次回到App
//解锁后回到App
A:onRestart
A:onStart
A:onResume

二、非常规模式下

修改Activity配置信息下生命周期发生变化

场景一

屏幕方法发生变化

//调用setRequestedOrientation 方法后
onPause-->
onStop-->
onDestroy-->
//Activity已销毁并重建
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

场景二

把该Activity添加 android:configChanges=“orientation|screenSize”

//调用setRequestedOrientation 方法后
// 会调用 onConfigurationChanged()

场景二
把**android:configChanges=“orientation|screenSize”**改成android:configChanges=“orientation|keyboardHidden|screenSize”

//调用setRequestedOrientation 方法后
// 会调用 onConfigurationChanged()

切记一定要加上后边的screenSize否则在4.0以上版本生命周期执行不生效。

总结

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行1次,切竖屏时会执行1次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden|screenSize"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
4、设置Activity的android:configChanges="orientation|keyboardHidden|screenSize"时,切屏切记要加上screenSize,否则4.0版本以上生命周期不生效
文章来源:https://blog.csdn.net/mylike_45/article/details/135554276
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。