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键的过程。

你可能感兴趣的:(Android技术总结)