Android获取设置屏幕横竖屏

方法一:

创新互联建站主要业务有网站营销策划、网站制作、网站设计、微信公众号开发、小程序开发H5页面制作、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、营销型网站资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

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 获取设置屏幕横竖屏


当前标题:Android获取设置屏幕横竖屏
标题路径:http://csdahua.cn/article/iicjcd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流