AndroidManifest.xml文件详解(activity)(二)
android:configChanges
这个属性列出了那些需要Activity进行自我处理的配置变化。当在运行时配置变化发生的时候,默认情况下,这个Activity会被关掉并重启,但是用这个属性声明一个配置,就会阻止Activity被重启。相反,这个Activity会保持运行,并且它的onConfigurationChanged()方法会被调用。
注意:应该避免使用这个属性,并且只把它作为最后的手段来使用。有关如何正确处理配置改变期间的重启,请阅读“处理运行是变化”(http://blog.csdn.net/fireofstar/article/details/7456363)
下表中列出了这个属性的有效值,要设置多个值的时候,用“|”符号连接,例如:“locale|navigation|orientation”
值 |
说明 |
mcc |
IMSI移动国家编码改变时要进行自我处理---系统发现了一个新的SIM卡,并且更新了MCC。 |
mnc |
IMSI移动网络编码改变时要进行自我处理---系统发现了一个新的SIM卡,并且更新了MNC |
locale |
语言环境发生变化时要进行自我处理---用户选择了一种用于显示文本的新语言。 |
touchscreen |
触屏发生变化时要进行自我处理。(这种情况通常不会发生) |
keyboard |
键盘类型发生变化时,要进行自我处理。例如用户插入了一个外部键盘 |
keyboardHidden |
键盘的可用性发生变化时,要进行自我处理。例如用户启用了硬件键盘。 |
navigation |
导航类型(轨迹球/方向板)发生变化时,要进行自我处理。这种情况通常不会发生。 |
screenLayout |
屏幕布局发生变化时,要进行自我处理。这可能是由被激活的不同的显示方式所导致的变化。 |
fontScale |
字体的缩放因子发生变化时,要进行自我处理。如用户选择了一个新的全局字体尺寸。 |
uiMode |
用户界面发生变化时,要进行自我处理。在把设备放入桌面/轿车内或夜间模式变化时,会导致这种情况发生。它在API级别8中被引入。 |
orientation |
屏幕的方向发生变化时,要进行自我处理。用户旋转设备时会发生这种变化。 注意:如果应用程序的目标API级别是13或更高的版本,那么还应该声明screenSize配置,因为设备在横向和纵向之间切换时,对应的尺寸也会发生变化。 |
screenSize |
当前有效的屏幕尺寸发生变化时,要进行自我处理。这种变化意味着当前可用的相对长、宽比的尺寸发生了变化,因此当用户在横向和纵向之间切换时,就会产生屏幕可用尺寸的变化。但是,如果应用程序是在API级别12或更低的版本上编译的,那么Activity就要始终自己来处理这种变化(这个配置的变化不会重启Activity,即使是运行在Android3.2或更高版本的设备上)。 这个设置在API级别13中被引入。 |
smallestScreenSize |
物理尺寸发生变化时,要进行自我处理。这种变化不关注屏幕方向的变化,只在实际的物理屏幕尺寸发生变化时才会发生,如切换到另一个显示器上的时候。这个变化对应smallestWidth属性的配置来进行改变。如果应用程序是在API级别12或更低的版本上编译的,那么Activity就要始终自己来处理这种变化(这个配置的变化不会重启Activity,即使是运行在Android3.2或更高版本的设备上)。 这个设置在API级别13中被引入。 |
所有这些配置的改变都会影响到应用中所能看到的资源值。因此,当onConfigurationChanged()方法被调用时,通常需要重新获取所有的资源(包括布局资源、可绘制资源等等),以便能够正确的处理这些改变。
android:enabled
这个属性用于设置Activity是否能够被系统实例化。如果设置为true,则可以被实例化,如果设置为false,则不能被实例化。默认值是true。
<application>元素有它自己的enabled属性,它的这个属性设置会用于应用程序中的所有组件,包括Activity。<application>和<activity>元素的这个属性必须要设置为true(默认情况下都是true),以便系统能够实例化Activity。否则Activity不能被实例化。
android:excledeFromRecents
这属性用于设置由该Activity所启动的任务是否应该被排除在最近使用的应用程序列表之外。也就是说,当这个Activity是一个新任务的根节点时,这个属性决定了这个任务适应要显示在用户最近使用的应用程序列表中。如果设置为true,则这个任务会被排除在列表之外,如何设置为false,则应该包含在最近使用的应用列表中。默认值是false。
android:exported
这个属性用于设置该Activity能否由另一个应用程序的组件来启动,如果设置为true,则可以启动,否则不能启动。如果设置为false,那么该Activity只能被同一个应用程序中的组件或带有相同用户ID的应用程序来启动。
它的默认值要依赖与该Activity是否包含了Intent过滤器。如果没有任何过滤器,则意味着该Activity只能通过明确的类名来调用,这样就暗示者该Activity只能在应用程序内部使用(因为其他用户不会知道它的类名),因此在这种情况下,默认值是false。在另一方面,至少存在一个过滤器,则暗示着该Activity可被外部使用,因此默认值是true。
这个属性不是限制Activity暴露给其他应用程序的唯一方法。还可以使用权限来限制外部实体对该Activity的调用。
android:finishOnTaskLaunch
这个属性用于设置既存的Activity实例,在用户再次启动(在主屏上选择这个任务)它所属的任务时,是否应该被关闭。设置为true,则要关闭,否则不关闭,默认值是false。
如果这个属性和allowTaskReparenting属性都被设置为true,那么这个属性要优于其他属性,Activity的亲缘关系会被忽略。该Activity不会被转移父任务,而是被销毁。
android:hardwareAccelerated
这个属性用于设置该Activity是否应该启用硬件加速渲染。如果设置为true,则启用硬件加速,否则不启用。默认设置是false。
从Android3.0开始,硬件加速的OpenGL渲染器对应用程序可用,以便改善许多共同的2D图形操作的性能。当硬件加速渲染器被启用时,在Canva、Paint、Xfermode、ColorFilter、Shader和Camera中大多数操作都会被加速。这样会使动画、滚动更平滑,并改善整体的响应效果,即使应用程序没有明确要使用框架的OpenGL类库。因为启用硬件加速会增加系统的资源需求,所以应用程序会占用更多的内存。
要注意的是,不是所有的OpenGL 2D操作都会被加速。如果启用了硬件加速渲染,就要对应用程序进行充分测试,以确保所使用的渲染没有错误。
android:icon
这属性定义了代表Activity的一个图标。当Activity被要求显示到屏幕上时,这个图标会被显示给用户。例如,这个图标会显示在Launcher的窗口中,用于启动任务。这个图标经常会和label属性组合使用。
这个属性必须被设置为一个包含图片定义的可绘制资源。如果没有设置,就会使用给应用程序设置的图标来代替。
Activity的图标(或者是<application>元素设置的图标)也是所有的Activity的Intent过滤器的默认图标。
android:label
这个属性给Activity设置了一个可读的标签。当Activity要展现给用户的时候,这个标签会显示在屏幕上,它经常会跟Activity的图标一起来显示。
如果这个属性没有被设置,就会使用给应用程序设置的标签来代替。
Activity的标签(或者是<application>元素设置的标签)也是所有Activity的Intent过滤器的默认标签。
这个属性应该用一个字符串资源来设置。以便它能够在用户界面中用其他的语言来本地化。但是为了开发应用程序的便利,也可以用原始的字符串来设置。
AndroidManifest.xml文件详解(activity)(二)的更多相关文章
- [转]AndroidManifest.xml文件详解
转自:http://www.cnblogs.com/greatverve/archive/2012/05/08/AndroidManifest-xml.html AndroidManifest.xml ...
- AndroidManifest.xml文件详解(uses-permission)
语法(SYNTAX): <uses-permissionandroid:name="string"/> 被包含于(CONTAINED IN): <manifest ...
- AndroidManifest.xml文件详解
本文为安全专家李洋的最新一篇专栏文章<AndroidManifest.xml文件详解>.AndroidManifest.xml是一个跟安全相关的配置文件,该配置文件是Android安全保障 ...
- AndroidManifest.xml文件详解(meta-data)
http://blog.csdn.net/think_soft/article/details/7567189 语法(SYNTAX): <meta-dataandroid:name=" ...
- AndroidManifest.xml文件详解(activity)(一)
<activity android:allowTaskReparenting=["true" | "false"] android:alwaysRetai ...
- AndroidManifest.xml文件详解(activity)(五)
android:taskAffinity 这个属性用于跟Activity有亲缘关系的任务.带有相同亲缘关系的Activity,在概念上是属于相同任务的(从用户的角度看,它们是属于同一应用程序的).任务 ...
- AndroidManifest.xml文件详解(activity)(四)
android:multiprocess 这个属性用于设置Activity的实例能否被加载到与启动它的那个组件所在的进程中,如果设置为true,则可以,否则不可以.默认值是false. 通常,一个新的 ...
- AndroidManifest.xml文件详解(activity)(三)四种工作模式
android:launchMode 这个属性定义了应该如何启动Activity的一个指令.有四种工作模式会跟Intent对象中的Activity标记(FLAG_ACTIVITY_*常量)结合在一起用 ...
- 【Android 复习】:AndroidManifest.xml 文件详解
<?xml version="1.0" encoding="utf-8"?> <!-- package 包表示整个Android应用程序的主要 ...
随机推荐
- Apache James 发送邮件到外网
在config.xml文件中查找到<dnsserver>然后把默认的<server> 127.0.0.1</server> 改成如下形式:<dnsserver ...
- poj - 1953 - World Cup Noise(dp)
题意:n位长的01序列(0 < n < 45),但不能出现连续的两个1,问序列有多少种. 题目链接:id=1953" target="_blank">h ...
- Mac Xcode下配置OpenGL
暂时搁置一下iOS,又要去弄一些杂七杂八的东西了,毕竟是学校的作业,还是要完成的. 作业是让我们用OpenGL做一个茶壶- -.而且要三维立体能旋转的那种. 好吧这些都不是重点,重点是我最终决定在Ma ...
- 工作总结 .ToString("000000")
; ");//000123 指定格式 Console.WriteLine(ssp); ; ");//123456789 超过了返回原值 Console.WriteLine(ss);
- 自实现部分string类的功能
#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class MyString { publi ...
- app产品设计碉堡了
这个项目碉堡了 http://blog.csdn.net/googdev/article/details/54849715 2017-02-03 22:15 3898人阅读 评论(12) 收藏 举报 ...
- excel增加上一列的数值(日期)
=TEXT(D2-1,"m月d日") 有年的话就是 =TEXT(D2-1,"yyyy年m月d日") D2就是参照日期
- Atitit.执行cmd 命令行 php
Atitit.执行cmd 命令行 php 1. 执行cmd 命令行,调用系统命令的基础 1 1.1. 实际执行模式 1 1.2. 空格的问题 1 1.3. 中文路径的问题,程序文件读取编码设置 1 1 ...
- Atitit.执行cli cmd的原理与调试
Atitit.执行cli cmd的原理与调试 1. /c 与/k1 2. /k 参数,有利于调试1 3. -------code2 4. 打开程序后与openner脱离关系3 5. 返回参数 St ...
- C# 正则表达式替换制定关键词后面的所有内容
如题,将 {OUTSCIPTE} 关键词后的所有内容替换为string.Empty(包含关键字)这个正则该怎么写?我是 {OUTSCIPTE}(.*)$ 写的但是什么反应也没有 string str= ...