Android横竖屏切换生命周期的变化

Android横竖屏切换生命周期的变化

在面试的时候,面试官可能会问到进行横竖屏切换时Activity生命周期的变化,今天恰好有空,就自己写了个Demo看看。

从竖屏切换为横屏的时候,Activity的生命周期变化如下:

竖屏切换横屏时生命周期的变化.png

我们可以看到竖屏切换到横屏的时候Activity先被销毁了,然后开启重建。值得注意的是,在onPause之后,Activity调用了onSaveInstanceState方法,保存一些View层次结构的数据,如TextView的文本信息。然后在onStrat方法后调用了onRestoreInstanceState方法还原页面。

从横屏切换为竖屏的时候,Activity的生命周期变化如下:

横屏切换竖屏时生命周期的变化.png

从横屏切换到竖屏生命周期的变化是一致的。

为Activity添加 android:configChanges="orientation" 后的生命周期变化如下:

android:configChanges="orientation".png

这里可以看到添加android:configChanges属性后,Activity在旋转屏幕的时候任然会销毁重建。这是为什么了,在查看了资料后,发现如果minSdkVersion和targetSdkVersion有一个大于13的话,为了防止屏幕旋转时重启,除了orientation,我们还要加上screenSize.如下图所示:

为Activity添加 android:configChanges="orientation|screenSize" 后的生命周期变化如下:

android:configChanges="orientation|screenSize.png

我们可以看到添加ScreenSize属性后Activity就不会销毁重建了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android开发中,大多APP可能根据实际情况直接将APP的界面方向设死了,或竖屏或横屏。但是,我们还是会遇到横...
    yoosir阅读 50,594评论 7 112
  • Android横竖屏切换小结Android横竖屏切换小结(老样子,图片啥的详细文档,可以下载后观看 http://...
    4528283108ee阅读 2,702评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,826评论 25 709
  • 我真想, 摔门而去, 在地球的一个角, 找到定位在心中的你. 我真想, 逃到海边, 在海的尽头, 大声呼唤梦中的你...
    九条狼阅读 225评论 0 0
  • 今天看到一句话,是这么说的:人最大的悟,就是知道自己是什么样的人,并知道自己想成为什么样的人 悲哀,我可能这辈子都...
    江城小曼曼阅读 325评论 0 0