屏和竖屏切换是否调用Activity生命周期在mainfest.xml配置android:configChanges .

原创 2012年03月31日 11:52:03

不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次。

设置Activity的android:configChanges="orientation"时,切横,竖屏时生命周期只会执行一次。

设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用声明周期,只会执行onConfigurationChanged方法。


在android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置。在activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.而只是调用onConfigurationChanged(Configuration newConfig).这样就可以在这个方法里调整显示方式.


MainActivity中:

  1. public void onConfigurationChanged(Configuration newConfig) {  
  2.         try {  
  3.             super.onConfigurationChanged(newConfig);  
  4.             if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {  
  5.                 Log.v("Himi""onConfigurationChanged_ORIENTATION_LANDSCAPE");  
  6.             } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {  
  7.                 Log.v("Himi""onConfigurationChanged_ORIENTATION_PORTRAIT");  
  8.             }  
  9.         } catch (Exception ex) {  
  10.         }  
  11.     }  


  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.himi" android:versionCode="1" android:versionName="1.0">  
  4.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  5.         <activity android:name=".MainActivity" android:label="@string/app_name"  
  6.             android:configChanges="keyboardHidden|orientation">  
  7.             <intent-filter>  
  8.                 <action android:name="android.intent.action.MAIN" />  
  9.                 <category android:name="android.intent.category.LAUNCHER" />  
  10.             </intent-filter>  
  11.         </activity>  
  12.     </application>  
  13.     <uses-sdk android:minSdkVersion="4" />  
  14. </manifest>

如何让手机横竖屏切换不重走Activity生命周期

在Manifest里加上android:configChanges="keyboardHidden|orientation|screenSize";   扩展补充: 一: Activity中还...
  • Chen_Tw
  • Chen_Tw
  • 2015年07月03日 15:44
  • 1322

Android屏幕横竖屏切换和生命周期管理的详细总结

Android屏幕横竖屏切换和生命周期管理的详细总结       一般的我们去切换屏幕方向都是不希望Activity被重新创建,这时就需要对一些属性进行设置,或者使用代码设置。        今天想...
  • wenzhi20102321
  • wenzhi20102321
  • 2017年04月01日 09:46
  • 2945

Fragment和Activity生命周期以及横竖屏切换对生命周期的影响

Fragment生命周期图解,fragment和activity生命周期对比 1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,...
  • robertcpp
  • robertcpp
  • 2016年06月11日 10:04
  • 3325

横竖屏切换时重构Activity生命周期的问题---android:configChanges的用法

android:configChanges,这个方法主要是负责列出清单,当清单上用户指定的设置改变时,Activity会自己处理这些变化。  orientation,屏幕界面旋转(可能是用户手动旋转的...
  • u011112840
  • u011112840
  • 2013年12月26日 21:26
  • 1869

横屏切换竖屏Activity的生命周期及configChanges

曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的: 1、新建一个Activity,并把各个生命周期打印出来 2、运行...
  • imdxt1986
  • imdxt1986
  • 2012年03月10日 14:10
  • 7022

Android Configuration横竖屏切换时Activity生命周期调用

问题:横竖屏切换时Activity的生命周期? 测试环境:华为mate7 package com.virglass.beyond.activity; import android.app.Acti...
  • andylau6789
  • andylau6789
  • 2015年07月16日 20:40
  • 877

横竖屏切换Activity生命周期

  • 2013年12月22日 15:44
  • 252KB
  • 下载

Android基础总结——Activity生命周期、横竖屏切换和启动模式(任务栈)

熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用。其实android中的Acti...
  • wuseyukui
  • wuseyukui
  • 2015年07月22日 10:49
  • 592

Android入门——Activity生命周期和横竖屏切换和解锁屏详尽总结

横屏切换竖屏Activity的生命周期和A跳转到B的完整生命周期,屏幕适配的总结。...
  • CrazyMo_
  • CrazyMo_
  • 2016年03月23日 16:48
  • 1001

android-----横竖屏切换对Activity生命周期的影响

前面我们分析过Activity的生命周期(见:android-----Activity生命周期),但是在现实应用中我们可能会对手 机进行横竖屏切换,那么这样的切换对Activity的生命周期有什么影响...
  • hzw19920329
  • hzw19920329
  • 2016年05月08日 19:31
  • 2226
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:屏和竖屏切换是否调用Activity生命周期在mainfest.xml配置android:configChanges .
举报原因:
原因补充:

(最多只允许输入30个字)