<activity            android:name=".SecondActivity"            android:configChanges="orientation|keyboardHidden|screenSize"            android:label="第二个活动"            android:screenOrientation="portrait" />

先说 android:launchMode 属性:

这篇博客对该属性说的比较清楚,请点击这里。

android:screenOrientation 属性

Android默认就是这个属性,android:screenOrientation=”unspecified”
这是一个默认值,由系统选择显示方向,在不同的设备上可能结果不太一样.
android:screenOrientation=”landscape” 横向屏幕
android:screenOrientation=”portrait” 竖向屏幕
android:screenOrientation=”user” 用户当前首选方向
android:screenOrientation=”behind” 与在活动(Activity)堆栈下的Activity方向相同
android:screenOrientation=”sensor” 根据物理方向传感器 来确定方向,比如有的游戏既支持竖屏也支持横屏,取决于用户手持方向.
android:screenOrientation=”nosensor” 不随 物理方向传感器确定方向,该传感器呗忽略,所以当用户转动设备,显示不会跟随改变,除了这个区别. 这个怎么理解呢? 其实可以理解成系统关闭重力感应.

或者在代码这样设置也可以:

@Override    protected void onResume() {        /**         * 设置为横屏         */        if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);        }        super.onResume(); //注意在super.onResume()之前    }

android:configChanges 属性

周所周知,在Android横竖屏切换的时候,活动的生命周期是重新再执行一遍的。未避免这个问题,我们可以这样处理的:

在android 4.0 以上,必须要加上screenSize,也就是说android 4.0以后的版本必须这样配置:

android:configChanges="keyboardHidden|orientation|screenSize"

在配置了这个属性后,android:configChanges 属性就会捕获“屏幕方向”的变化,当捕获到这些变化后会调用Activity的onConfigurationChanged()方法。这样横竖屏切换时,活动的生命周期也不会重新再执行一遍啦。我们也可以在重写的onConfigurationChanged()方法做相应处理。

@Override    public void onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);       /* if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {            System.out.println("SecondActivitydd.onConfigurationChanged 横屏");        } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {            System.out.println("SecondActivitydd.onConfigurationChanged 竖屏");        }*/        switch (newConfig.orientation) { //屏幕的方向,和上面注释掉的代码效果一样            case Configuration.ORIENTATION_PORTRAIT://竖屏                System.out.println("SecondActivitydd.onConfigurationChanged 竖屏");                break;            case Configuration.ORIENTATION_LANDSCAPE://横屏                System.out.println("SecondActivitydd.onConfigurationChanged 横屏");                break;        }    }

相应参数说明:
在Activity中添加了android:configChanges属性,在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数。

设置方法:将下列字段用“|”符号分隔开,例如:“locale|navigation|orientation”

“mcc“ 移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
“mnc“ 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
“locale“ 所在地区发生变化。
“touchscreen“ 触摸屏已经改变。(这不应该常发生。)
“keyboard“ 键盘模式发生变化,例如:用户接入外部键盘输入。
“keyboardHidden“ 用户打开手机硬件键盘
“navigation“ 导航型发生了变化。(这不应该常发生。)
“orientation“ 设备旋转,横向显示和竖向显示模式切换。
“fontScale“ 全局字体大小缩放发生改变

exported 属性

android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。

总体来说它的主要作用是:是否支持其它应用调用当前组件。
默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。

android:enabled 属性

默认情况下,Android系统会自行实例化每一个应用程序的组件,包括Android四大组件,但如果我们需要自己完成这些事情的话,就需要使用android:enabled属性来限制Android系统的行为。这个属性表明Android系统是否可以被实例化应用程序组件,如果其值为true,则说明应用程序组件可以被Android系统自动实例化;如果为false,则说明实例化组件的工作需要手工完成。该属性的默认值为true。每一个组件都可以单独定义自己的enabled属性。如果这个属性定义在节点中,那么它会默认将每个组件的enabled属性设置为相同的值。如果每一个组件单独定义了这个属性,那么节点上定义的属性对此组件不再生效,就由自己的enabled属性决定。

android:allowBackup

它表示是否允许应用程序参与备份。如果将该属性设置为false,则即使备份整个系统,也不会执行这个应用程序的备份操作,而整个系统备份能导致所有应用程序数据通过ADB来保存。该属性必须是一个布尔值,或为true,或为false,其默认值为true。


参考博客:

关于ComponentName的使用

android:exported 属性详解

更多相关文章

  1. Android 基本控件 View 类的常用xml 属性(初级详解)
  2. 高级组件之网格视图
  3. android中view的一些属性
  4. Android Text控件之属性:android:textAppearance
  5. 元素可指定如下常用属性

随机推荐

  1. Android 获取唯一硬件编号
  2. android studio
  3. Android(安卓)使用Glide加载图片
  4. Android 问题记录
  5. 【Android】安卓运行问题
  6. Android’s HTTP Clients(Android的HTTP客
  7. 配置Android在MyEclipse下的开发环境
  8. android典型代码系列(四)------android全
  9. android studio关于targetSdk version,min
  10. android 屏幕监听滑动事件