Android 横竖屏切换问题分析
2016-08-23 14:53
357 查看
关于横竖屏切换,如果不做任何操作的话,activity 会重新走onCreate()方法,如果这里面有很作操作的话,就会有很多资源浪费,如果,页面保存了一些数据,那么也会清空。
解决方法,在清单文件中添加:
追加分析:
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
最后一条,当API >12时,需要加入screenSize属性,否则屏幕切换时即使你设置了orientation系统也会重建Activity.
解决方法,在清单文件中添加:
<span style="font-size:18px;">android:configChanges="orientation|keyboardHidden|screenSize"</span>这样就不会再走oncreate方法了,如果需要在横竖切换的时候做一些操作的话可以重写onConfigurationChanged方法
<span style="font-size:18px;">@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // 检测屏幕的方向:纵向或横向 if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //当前为横屏, 在此处添加额外的处理代码 Log.d(TAG, "-- onConfigurationChanged == 横屏 " ); } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //当前为竖屏, 在此处添加额外的处理代码 Log.d(TAG, "-- onConfigurationChanged == 竖屏 "); } }</span>
追加分析:
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
最后一条,当API >12时,需要加入screenSize属性,否则屏幕切换时即使你设置了orientation系统也会重建Activity.
相关文章推荐
- Android横竖屏切换问题
- [Android疑难杂症]Gallery默认和横竖屏切换选中状态问题(2.3、2.3系统存在)
- Android横竖屏切换问题
- 在Android中自动实现横竖屏切换的问题
- Android横竖屏切换布局不正常的问题
- Android开发日志之横竖屏切换数据保存问题
- Android 游戏开发中横竖屏切换问题
- 【转】Android横竖屏切换问题
- Android中解决手机屏幕横竖屏切换问题
- 百度地图与Android横竖屏切换的问题
- 解决Android横竖屏切换数据丢失问题
- Android游戏开发9:触屏事件处理中的常见问题及如何禁止横竖屏切换
- [Android疑难杂症]Gallery默认和横竖屏切换选中状态问题(2.3、2.3系统存在)
- 横竖屏切换时重构Activity生命周期的问题---android:configChanges的用法
- Android横竖屏切换布局不正常的问题
- 解决Android横竖屏切换数据丢失问题
- android系统横竖屏切换问题
- 解决Android横竖屏切换数据丢失问题
- android 解决横竖屏切换时重新载入的问题
- Android 游戏开发中横竖屏切换问题