android横竖屏切换,android横竖屏切换的生命周期

Android Activity横竖屏切换生命周期

面试被问到横竖屏切换时Activity的生命周期,正好记录一下验证过程~

创新互联公司是一家专注于网站设计制作、成都网站设计与策划设计,霍林郭勒网站建设哪家好?创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:霍林郭勒等地区。霍林郭勒做网站价格咨询:028-86922220

新建Activity,重写各个生命周期方法:

运行Activity,生命周期如下:

切换横屏,生命周期如下:

再切回竖屏,生命周期如下:

修改AndroidManifest.xml,添加 android:configChanges="orientation" 并切换横屏,生命周期如下:

再切换竖屏,生命周期如下:

修改AndroidManifest.xml,属性改为 android:configChanges="orientation|keyboardHidden|screenSize" ,切换横屏,生命周期如下:

再切换回竖屏,生命周期如下:

Android教程-屏幕方向-横竖屏切换

标签中设置:android:screenOrientation

Activity 在设备上的显示方向。如果 Activity 是在 多窗口模式 下运行,系统会忽略该属性。

其值可以是下列任一字符串:

例如: android:screenOrientation="landscape" 横屏 android:screenOrientation="portrait" 竖屏

Activity横竖屏切换生命周期变化

onCreate ,

创建activity时调用。设置在该方法中,还以Bundle中可以提出用于创建该 Activity 所需的信息。

onStart ,

activity变为在屏幕上对用户可见时,即获得焦点时,会调用。

onResume ,

activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)

onSaveInstanceState

onPause ,

activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的

onStop ,

activity被停止并转为不可见阶段及后续的生命周期事件时,即失去焦点时调用

onDestroy ,

activity被完全从系统内存中移除时调用,该方法被调用可能是因为有人直接调用 finish()方法 或者系统决定停止该活动以释放资源。

onRestoreInstanceState ,

Android在横竖排切换时候,将主动销毁activity和重新创建一个新的activity出来,在此过程中,onRestoreInstanceState就要被回调

onConfigurationChanged ,

配置指定属性后,屏幕方向发生变化后回调此函数.

把该Activity添加

android:configChanges="orientation" ,

执行步骤3(切换成横屏时)

android:configChanges="orientation" 对于4.04.0以上版本不生效

把该Activity添加 android:configChanges="orientation|screenSize" ,

执行步骤3(切换成横屏时)

onConfigurationChanged--

只打印onConfigChanged

把 android:configChanges="orientation|screenSize" 改成 android:configChanges="orientation|keyboardHidden|screenSize"

执行步骤3(切换横屏幕)

只打印

onConfigChanged

执行步骤4(切换竖屏幕)

只打印onConfigChanged

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

当前Activity产生事件弹出Toast和AlertDialog的时候Activity的生命周期不会有改变

Activity运行时按下HOME键(跟被完全覆盖是一样的):

onPause -- onStop onRestart --onStart---onResume

Activity未被完全覆盖只是失去焦点:onPause---onResume

测试用手机版本5.1.1

Android实现屏幕旋转方法

这种方法的优点:即使屏幕旋转,Activity也不会重新onCreate。

缺点:屏幕只有一个方向。

这个方法的优点:我们可以随时监听屏幕旋转变化,并对应做出相应的操作;

缺点:它只能一次旋转90度,如果一下子旋转180度,onConfigurationChanged函数不会被调用。

4.设置方向的其他方式

在AndroidManifest.xml设置

横向显示,但是基于设备传感器,既可以是按正常方向显示,也可以反向显示,在API Level 9中被引入。

android:screenOrientation="sensorLandscape"

纵向显示,但是基于设备传感器,既可以是按正常方向显示,也可以反向显示,在API Level 9中被引入。

android:screenOrientation="sensorLandscape"

demo

安卓手机怎样换为横屏?

以华为Mate40手机为例:

升级HarmonyOS系统后,从屏幕右侧顶部下滑出控制中心界面,点击自动旋转开启屏幕自动旋转功能。


新闻标题:android横竖屏切换,android横竖屏切换的生命周期
本文网址:http://myzitong.com/article/dsgdegg.html