博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreate的问题解决...
阅读量:6000 次
发布时间:2019-06-20

本文共 725 字,大约阅读时间需要 2 分钟。

hot3.png

今天在写一个应用的时候,因为需要设置成横屏模式,所以在Manifest里面的Activity里面加了两个参数设置:

android:screenOrientation="landscape"

        android:configChanges="keyboardHidden|orientation"

这是设置屏幕方向为横屏,以及禁止在屏幕切换的时候重启Activity和隐藏键盘。

本来是用的好好的,但是无意中在锁屏后再解锁的时候,应用会先竖屏,然后再转回横屏,而且还有一些时间间隔,于是我就去调查了一番:

首先,在所有Activity的生命周期加了一句打印LOG,发现在锁屏的时候,Activity就执行了一遍onDestroy,解锁的时候,又重新从onCreat来打开,于是就又执行了一遍onCreat里面的代码,,,这不科学,正常情况下是不会执行这两个的(除非系统内存吃紧,自动销毁,但是这个情况排除了)。

经过反复查找和DEBUG之后,又和同学同事讨论了半天,还去查看了锁屏的源代码(虽然没看懂几句),还是没有结果,,,

不过,皇天不负有心人,终于在stackoverflow上找到一大神的回答了~

问题的关键所在,就是API13以后,需要在 android:configChanges

的参数里面加一个screenSize!!!

也就是: android:configChanges="screenSize|keyboardHidden|orientation" 

经过我亲手真机测试,问题很干净地被解决了,妈妈再也不用担心它重复onCreate了!

转载于:https://my.oschina.net/u/1047462/blog/160142

你可能感兴趣的文章
UWP Composition API - 锁定列的FlexGrid
查看>>
[转载] win10进行端口转发
查看>>
IE7下对某些seajs压缩文件不兼容的解决方法
查看>>
利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)-----转载
查看>>
从零开始搭建vue项目 请求拦截器 响应拦截器
查看>>
ajax实现动态下拉框
查看>>
paper
查看>>
玩school 学习sql server 查询的网站
查看>>
什么是DMI,SMBIOS,符合SMBIOS规范的计算机的系统信息获取方法
查看>>
线段树模板
查看>>
poj 3080 KMP
查看>>
DB2 for LUW 10.1 中db2diag.log 的位置
查看>>
HDU3257 Hello World!【打印图案+位运算】
查看>>
HDU4548 美素数
查看>>
Javascript----练习一(变量)
查看>>
慕课linux学习笔记(九)常用命令(6)
查看>>
TCP Implementation in Linux: A Brief Tutorial
查看>>
C# 枚举用法
查看>>
JavaScript基础学习--12 日期对象、时钟倒计时
查看>>
成员变量,局部变量,静态变量
查看>>