android横竖屏切换方法,Android横竖屏切换的生命周期
关于Android手机横竖屏切换时Activity的生命周期问题,网上有很多相似的文章,大多数都是说明在竖屏切换横屏时Activity会重启一次,而在横屏切换竖屏时Activity会重启两次。
我本身不太理解这样设计的意义,并且觉得新版本会解决这个问题,所以做了一项测试,测试环境为Android 7.0模拟器。
测试首先创建一个新的Activity,并在其各个生命周期方法内打印日志,并执行如下操作得到结果:
在targetSdkVersion的值大于12时
Activity启动
I/System.out: onCreate
I/System.out: onStart
I/System.out: onResume
竖屏切换为横屏
I/System.out: onConfigurationChanged
I/System.out: onPause
I/System.out: onSaveInstanceState
I/System.out: onStop
I/System.out: onDestroy
I/System.out: onCreate
I/System.out: onStart
I/System.out: onRestoreInstanceState
I/System.out: onResume
横屏切回竖屏
I/System.out: onConfigurationChanged
I/System.out: onPause
I/System.out: onSaveInstanceState
I/System.out: onStop
I/System.out: onDestroy
I/System.out: onCreate
I/System.out: onStart
I/System.out: onRestoreInstanceState
I/System.out: onResume
配置android:configChanges="orientation|screenSize"后,竖屏切换为横屏
I/System.out: onConfigurationChanged
配置android:configChanges="orientation|screenSize"后,横屏切回竖屏
I/System.out: onConfigurationChanged
在targetSdkVersion的值小于或等于12时
Activity启动
I/System.out: onCreate
I/System.out: onStart
I/System.out: onResume
竖屏切换为横屏
I/System.out: onConfigurationChanged
I/System.out: onPause
I/System.out: onSaveInstanceState
I/System.out: onStop
I/System.out: onDestroy
I/System.out: onCreate
I/System.out: onStart
I/System.out: onRestoreInstanceState
I/System.out: onResume
横屏切回竖屏
I/System.out: onConfigurationChanged
I/System.out: onPause
I/System.out: onSaveInstanceState
I/System.out: onStop
I/System.out: onDestroy
I/System.out: onCreate
I/System.out: onStart
I/System.out: onRestoreInstanceState
I/System.out: onResume
配置android:configChanges="orientation"后,竖屏切换为横屏
I/System.out: onConfigurationChanged
配置android:configChanges="orientation"后,横屏切回竖屏
I/System.out: onConfigurationChanged
总结
可以发现新版本Android设备上的运行结果和网上的结论并不完全相同,在横竖屏切换时,都会调用一次onConfigurationChanged,并重启Activity一次,具体的生命周期为:
I/System.out: onConfigurationChanged
I/System.out: onPause
I/System.out: onSaveInstanceState
I/System.out: onStop
I/System.out: onDestroy
I/System.out: onCreate
I/System.out: onStart
I/System.out: onRestoreInstanceState
I/System.out: onResume
在targetSdkVersion的值小于或等于12时,配置android:configChanges="orientation"
在targetSdkVersion的值小于或等于12时,配置android:configChanges="orientation|screenSize"
可以做到拦截Activity的重新创建:
I/System.out: onConfigurationChanged
后续
将会对过去版本的Android设备做相应的测试,来验证得到结果。
android横竖屏切换方法,Android横竖屏切换的生命周期相关推荐
- android颜色值的表示方法android:background=#FFFFFFFF的意思
android颜色值的表示方法 android:background="#FFFFFFFF"的意思 Android中的颜色值是通过红(Red).绿(Green).蓝(Blue)三原 ...
- Android零基础入门第86节:探究Fragment生命周期
2019独角兽企业重金招聘Python工程师标准>>> 一个Activity可以同时组合多个Fragment,一个Fragment也可被多个Activity 复用.Fragment可 ...
- Android开发笔记(三十九)Activity的生命周期
与生命周期有关的方法 下面是Activity类与生命周期有关的方法: onCreate : 创建页面 onStart : 开始页面 onStop : 停止页面 onResume : 恢复页面 onPa ...
- Python学习手册之内部方法、操作符重载和对象生命周期
在上一篇文章中,我们介绍了 Python 的类和继承,现在我们介绍 Python 的内部方法.操作符重载和对象生命周期. 查看上一篇文章请点击:https://www.cnblogs.com/dust ...
- android横竖屏切换方法,Android 4.0 横竖屏切换注意事项
==Android 2.3以前的横竖屏切换== 在Android 2.3平台上,我们可以需要设置界面的横竖屏显示时,可以在AndroidManifest.xml中,对Activity的属性添加以下代码 ...
- android monitor的使用方法,Android Device Monitor使用方法及常见问题解决方案
Android Device Monitor使用方法及常见问题解决方案 发布时间:2018-07-17 18:18, 浏览次数:1184 , 标签: Android Device Monitor DD ...
- android中的add方法,Android中Fragment怎么addView?
慕勒3428872 Fragment是Android honeycomb 3.0新增的概念,在Android--Fragment介绍.AndroidFragment使用.Android Fragmen ...
- android的反调试方法,Android平台融合多特征的APP反调试方法与流程
本发明涉及Android平台融合多特征的APP反调试方法,属于计算机与信息科学技术领域. 背景技术: 应用程序本身并不具备反调试的功能,但是动态调试是动态分析应用逻辑.动态脱壳等攻击方式所采取的必要手 ...
- android 开启子线程方法,android中开启子线程
AndroidRuntime(673): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/ ...
最新文章
- 个人在公司在意的三点
- 如何准确估算并发数?
- 颜宁问4对科研夫妻:男女搭配,如何不累?
- MySql基本的操作
- 抗住 60 亿次攻击,起底阿里云安全的演进之路 | 问底中国 IT 技术演进
- lammps建模_LAMMPS常用建模方法总结
- 天线接收功率计算公式_无线信号功率计算公式
- 7-7 选民投票 (20分)(不区分大小写投票)
- 人工智能围棋战胜李世石,人工智能围棋阿尔法狗
- 假设一张纸的厚度是1mm,那么这张纸折叠多少次可以到达珠穆朗玛峰的高度(8848m)?
- Flutter 吐司弹框的使用 showToast弹框(插件)
- Android中的热修复
- (每日一练python)组合总和
- JAVA毕业设计科研成果管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库
- 我为什么而活着 [英]罗素
- python 爬虫 requests模块 中的Cookies 验证 通过验证cookies模拟登陆豆瓣登陆
- 面向对象类与对象的关系
- Apache Arrow 简介
- 用echart玩点好玩的--酷炫热力图
- 微信小程序 input事件绑定
热门文章
- Android 第三方ROM CyanogenMod 源码下载,编译,刷机
- 硫酸软骨素-聚乙二醇-卵清蛋白,Chondroitin sulfate-PEG-OVA/Ovalbumin
- Windows下解压分卷压缩方法
- 工业相机的传感器靶面大小
- 爬取智联招聘上24座热门城市中Java招聘信息
- apa引用要在文中吗_Reference 居然还有那么多讲究?引用不好就挂了!
- Java面试java基础,重庆java哪家培训班好
- 中关村科技企业家协会网安创新分会在京成立,墨云科技成为首批会员单位
- 人工智能的核心技术是什么
- 微信开放平台 错误码61007: api is unauthorized to component