温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android 获取设置屏幕横竖屏

发布时间:2020-08-06 03:23:17 来源:网络 阅读:694 作者:huyanruirui 栏目:移动开发

方法一:

screenOrientation = application.getResources().getConfiguration().orientation;

方法二:

screenOrientation = activity.getRequestedOrientation();获取当前activity 的横竖方向


动态设置屏幕横竖屏:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


生命周期:

  1. 横竖屏切换

(1)无configChanges

onCreate-->

onStart-->
onResume--> 

----------切换--------

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

-----------切换--------

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

(2)修改AndroidManifest.xml,把该Activity添加 android:configChanges="orientation",执行步骤3

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

再执行步骤4,发现不会再打印相同信息,但多打印了一行onConfigChanged

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onConfigurationChanged-->


(3)改成 android:configChanges="orientation|screenSize|keyboardHidden"(sdk>13时需加上screenSize),执行步骤3,就只打印onConfigChanged

onConfigurationChanged-->  

执行步骤4

onConfigurationChanged-->
onConfigurationChanged-->


总结:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

2、设置Activity的android:configChanges="keyboardHidden"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|screenSize|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法






Android 获取设置屏幕横竖屏

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI