android:configChanges

来源:互联网 发布:js格式化日期yyyymmdd 编辑:程序博客网 时间:2024/05/23 00:09

 一般在AndroidManifest.xml文件中都没有使用到android:configChanges="keyboardHidden|orientation"配置,当然还是很有用的哈

就是如果配置了这个属性,当我们横竖屏切换的时候会直接调用onCreate方法中的onConfigurationChanged方法,而不会重新执行onCreate方法,那当然如果不配置这个属性的话就会重新调用onCreate方法了,下面是测试

 

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

MainActivtiy.java

  1. package com.example.testforshape; 
  2.  
  3. import android.os.Bundle; 
  4. import android.app.Activity; 
  5. import android.content.res.Configuration; 
  6. import android.graphics.Bitmap; 
  7. import android.graphics.BitmapFactory; 
  8. import android.graphics.drawable.BitmapDrawable; 
  9. import android.graphics.drawable.Drawable; 
  10. import android.view.Menu; 
  11. import android.view.MenuItem; 
  12. import android.view.Window; 
  13. import android.widget.TextView; 
  14. import android.support.v4.app.NavUtils; 
  15.  
  16. public class MainActivity extends Activity { 
  17.  
  18.     @Override 
  19.     public void onCreate(Bundle savedInstanceState) { 
  20.         super.onCreate(savedInstanceState); 
  21.       
  22.         setContentView(R.layout.activity_main); 
  23.     
  24.  System.out.println("oncreadtes"); 
  25.     } 
  26.     @Override 
  27.     public void onConfigurationChanged(Configuration newConfig) { 
  28.         System.out.println("config改变"); 
  29.          if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE) 
  30.          { 
  31.              System.out.println("横"); 
  32.          } 
  33.          else if(newConfig.orientation==Configuration.ORIENTATION_PORTRAIT) 
  34.          { 
  35.              System.out.println("竖"); 
  36.          } 
  37.         super.onConfigurationChanged(newConfig); 
  38.     } 
  39.  
  40.     @Override 
  41.     public boolean onCreateOptionsMenu(Menu menu) { 
  42.         getMenuInflater().inflate(R.menu.activity_main, menu); 
  43.         return true; 
  44.     } 
  45.  
  46.      

运行截图:

 

 

 

原创粉丝点击