十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
面试被问到横竖屏切换时Activity的生命周期,正好记录一下验证过程~
为哈巴河等地区用户提供了全套网页设计制作服务,及哈巴河网站建设行业解决方案。主营业务为成都网站建设、网站设计、哈巴河网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
新建Activity,重写各个生命周期方法:
运行Activity,生命周期如下:
切换横屏,生命周期如下:
再切回竖屏,生命周期如下:
修改AndroidManifest.xml,添加 android:configChanges="orientation" 并切换横屏,生命周期如下:
再切换竖屏,生命周期如下:
修改AndroidManifest.xml,属性改为 android:configChanges="orientation|keyboardHidden|screenSize" ,切换横屏,生命周期如下:
再切换回竖屏,生命周期如下:
最近开发一款手机播放器,节目列表界面是竖屏的,而播放界面需要是横屏的。测试过程中,从播放界面退回到列表界面时,列表会重新加载,看了一下打印,回到列表界面后,onCreate居然又执行了,而且是执行了两次。
按照activity的生命周期来说,onCreate一般只会执行一次的,从其他界面返回,居然还会再执行两次,很奇怪的现象。
网上搜了搜,应该是跟横竖屏切换有关,于是测试了一下。先把播放界面修改为竖屏,从播放界面返回后,列表界面正常,onCreate没有被重复调用,说明onCreate的执行和横竖屏切换是有关的。网上看到很多人说,在AndroidManifest.xml设置一下,添加 android:configChanges="orientation|keyboardHidden|screenSize" ,于是照做,再测试,果然解决问题。
1、首先打开苹果手机,在手机桌面中,向上滑动,如下图所示。
2、然后在打开的下拉选项中,点击关闭锁屏,如下图所示。
3、这时竖屏关闭成功,手机屏幕可以自由旋转,变成横屏了。
4、或者打开安卓手机,同样在桌面中向上滑动,如下图所示。
5、进入任务栏,点击开启旋转屏幕,如下图所示就完成了。
标签中设置:android:screenOrientation
Activity 在设备上的显示方向。如果 Activity 是在 多窗口模式 下运行,系统会忽略该属性。
其值可以是下列任一字符串:
例如: android:screenOrientation="landscape" 横屏 android:screenOrientation="portrait" 竖屏
分手机类型进行设置。
具体分为两种情况
1、若是使用安卓手机,则可以下拉顶帘菜单,并点击“自动旋转/纵向”即可。或下拉顶帘菜单后,点击“屏幕旋转”。绿色为开启状态,灰色为关闭状态。关闭屏幕锁定后即可调整手机横屏状态;
2、若是苹果手机,则可以从下往上拉出菜单栏,关闭菜单栏中的屏幕锁定,即可成功关闭手机屏幕锁定。再将手机横向放置,手机即可横屏。vivo智能手机没有横屏设置选项,关闭竖屏锁定开关后,手机会自动切换横屏竖屏方向。竖屏锁定关闭方法:上滑快捷栏-找到竖屏锁定-关闭开关具体操作步骤(以vivoX9为例):
1、从屏幕底部上滑打开快捷栏,左滑找到竖屏锁定
2、点击关闭竖屏锁定注:图标亮起代表开启此功能,熄灭代表关闭。
以华为Mate40手机为例:
升级HarmonyOS系统后,从屏幕右侧顶部下滑出控制中心界面,点击自动旋转开启屏幕自动旋转功能。