常见的android应用程序在AndroidManifest.xml文件中都没有使用到android:configChanges="keyboardHidden|orientation"配置。
它还是很有用的。如果配置了这个属性,当我们横竖屏切换的时候会直接调用onCreate方法中的onConfigurationChanged方法,而不会重新执行onCreate方法,那当然如果不配置这个属性的话就会重新调用onCreate方法了。

测试:

AndroidManifest.xml文件

<?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文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="横竖屏切换测试" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/et" /> </LinearLayout>

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("竖屏"); } } }

可以亲自测试测一下,以验证上述结论
当在xml文件中配置了android:configChanges="keyboardHidden|orientation"属性,
在横紧屏切换的时候不会重新执行Activity的onCreate方法,
只是执行onConfigurationChanged方法,否则切换的时候会重新执行onCreate方法

更多相关文章

  1. Charles Android(安卓)抓包失败SSLHandshake: Received fatal al
  2. 安装apk文件到模拟器
  3. 设置Activity全屏与不全屏
  4. 向模拟器发短信打电话的方法
  5. Android(安卓)更新UI的两个方法
  6. android studio 60音乐播放器 下载音乐
  7. android 界面常亮设置
  8. 从android image中提取文件
  9. vlc for android 官网sample使用

随机推荐

  1. Android 复制和粘贴功能
  2. Android之ProGuard混淆器
  3. Android中的颜色设置
  4. android屏幕单位
  5. android framework集成第三方jar包
  6. android 实现APK之间的跳转
  7. 在使用ListFragment的setEmptyText时报ja
  8. android 多版本打包之productFlavors 用
  9. JNI基础实验一:调用.so文件--友善之臂Tiny
  10. Android(安卓)- Acitivty生命周期 理解