关于android:configChanges的属性
在AndroidManifest.xml文件中使用android:configChanges="keyboardHidden|orientation"配置,还是很有用的。
如果配置了这个属性,当我们横竖屏切换的时候会直接调用onCreate方法中的onConfigurationChanged方法,而不会重新执行onCreate方法,那当然如果不配置这个属性的话就会重新调用onCreate方法了
例子:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.test"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk android:minSdkVersion="8" />
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".TestActivity"
- android:label="@string/app_name"
- android:configChanges="keyboardHidden|orientation">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- </manifest>
main.xml文件
- <FONT size=2></FONT>
TestActivity.java文件
- package com.test;
- import android.app.Activity;
- import android.content.res.Configuration;
- import android.os.Bundle;
- import android.widget.EditText;
- import android.widget.TextView;
- public class TestActivity extends Activity {
- EditText et;
- TextView tv;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- et = (EditText) findViewById(R.id.et);
- tv = (TextView) findViewById(R.id.tv);
- System.out.println("我是onCreate方法");
- }
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
- tv.setText("横屏");
- }else{
- tv.setText("竖屏");
- }
- }
- }