android解锁屏时Activity生命周期的变化

最近做的忍者小鸡暗杀行动遇到按锁屏键再解锁时 进入游戏画面会特别卡的问题,后来打日志发现 锁屏再解屏时生命Activity的生命周期发生异常变化引起的,下面就具体来看下。

事先在GameActivity(游戏主界面)的 onCreate() 方法和 onDestroy()方法打上Log 。

进入GameActivity时

——————————->onCreate();

按锁屏后 :

—————————–>onDestroy();

—————————–>onCreate();

再解锁:

——————————>onDestroy();

——————————->onCreate();

 

根据日志可以看出 锁屏时 系统销毁当前Activity又在后台创建了一个Activity ,再解锁时 系统又销毁了后台的Activity 再创建一个新的Activity。

起初不是很明白,后来在网上查了相关资料发现这中情况是由于横竖屏切换引起的,横竖屏切换时 会销毁当前Activity 再创建 一个新的Activity(横屏切竖屏或者竖屏切横屏)。具体过程大家可以写个demo 打上日志看看 ,这里就不细说了,至于为什么要这样设计还有待研究,下面就来看看这个问题的解决方法:

解决这个问题 只要在程序的配置文件 (APPManifest.xml ,的相关Activity里加上

android:configChanges=”keyboard|keyboardHidden|orientation”

加上这句后 按锁屏键 就不会销毁当前Activity 也不会在后台创建Activity了  ,其生命周期类似于按了Home键的过程。

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值