Android屏幕旋转

很久没有写文章了,找个时间整理下Android简单的屏幕旋转的生命周期和正确的竖屏锁定设置

  • 生命周期

    • 启动Activity会执行如下方法:

      onCreate –> onStart –> onResume
      
    • 之后旋转屏幕,则Activity会被销毁并重新创建,之后便会执行如下方法:

      onPause –> onSaveInstanceState –> onStop –> onDestroy 
      –> onCreate –> onStart–>onRestoreInstanceState –> onResume
      
    • 在AndroidManifest配置文件里声明android:configChanges属性
      默认屏幕旋转会重新创建,当然可以通过在配置文件里加上如下代码:

    android:configChanges="keyboardHidden|orientation|screenSize"(sdk>13时需加上screenSize)
    
    • 这个时候再旋转屏幕便不会销毁Activity,这时候再旋转屏幕可以看到只会执行onConfigurationChanged方法,有什么在屏幕旋转的逻辑可以重写这个方法.
    public void onConfigurationChanged(Configuration newConfig) {
    if (newConfig.orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
       // TODO:
    }
    super.onConfigurationChanged(newConfig);
    }
    
  • 屏幕纵向固定

<activity
            android:name=".sign.region.RegionActivity"
            android:label="@string/region_switch"
            android:screenOrientation="portrait" />
  • android:ConfigChanges:在Activity中设置相应属性,当该Activity中配置的相应状态发生改变,则不交给系统处理(系统处理:销毁Activity并重新启动Activity),而是系统回调onConfigurationChanged()方法,我们在onConfigurationChanged()方法中对指定状态的改变进行捕捉,并自定义处理。
设置方法:将下列字段用“|”符号分隔开,例如:“locale|navigation|orientation” 
“mcc“ 移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
“mnc“ 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
“locale“ 所在地区发生变化。
“touchscreen“ 触摸屏已经改变。(这不应该常发生。)
“keyboard“ 键盘模式发生变化,例如:用户接入外部键盘输入。
“keyboardHidden“ 用户打开手机硬件键盘
“navigation“ 导航型发生了变化。(这不应该常发生。)
“orientation“ 设备旋转,横向显示和竖向显示模式切换。
“fontScale“ 全局字体大小缩放发生改变
从Android 3.2(API 13),在设置Activity的android:configChanges="orientation|keyboardHidden"后,还是一样会重新调用各个生命周期的。因为screen size也开始跟着设备的横竖切换而改变。所以,在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了设置"orientation",你还必须设置"ScreenSize"。
  • android:screenOrientation参数设置
android:screenOrientation设定该活动的方向, 该值可以是任何一个下面的字符串:
"unspecified":默认值. 由系统选择显示方向. 在不同的设备可能会有所不同.
"landscape":橫向
"portrait":纵向
"user":用戶当前的首选方向
"behind":与在活动堆栈下的活动相同方向
"sensor":根据物理方向传感器确定方向. 取决于用戶手持的方向, 当用戶转动设备, 它跟隨改变.
"nosensor":不经物理方向传感器確定方向. 该传感器被忽略, 所以当用戶转动设备, 显示不會跟隨改变. 除了这个区别,系統选择使用相同的政策取向对于“未指定”设置. 系統根据“未指定”("unspecified")设定选择相同显示方向.
  • 竖屏锁定正确姿势
<activity
            android:name=".sign.region.RegionActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/region_switch"
            android:screenOrientation="portrait" />
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • Android开发中,大多APP可能根据实际情况直接将APP的界面方向设死了,或竖屏或横屏。但是,我们还是会遇到横...
    yoosir阅读 49,536评论 7 112
  • Android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是有时候也不尽然,通常在设置里面我...
    Lost_Robot阅读 6,658评论 1 5
  • Application 标签 android:allowTaskReparenting android:allow...
    Shawn_Dut阅读 7,755评论 2 61
  • “走不完的长巷 原来也就那么长 跑不完的操场 原来小成这样 …… 我们曾相爱 想到就心酸” Puppy love,...
    心念一阅读 454评论 0 2
  • 原谅我有点标题党,本项目只是一个课程作业,就拿自己最近使用比较多的React实现了,不得不说蚂蚁金服的 Ant-D...
    yanm1ng阅读 543评论 0 4