android Manifest.xml选项

结构

继承关系

public final class Manifest extends Object

java.lang.Object

android.Manifest

内部类

  1. class  Manifest.permission权限
  2. class  Manifest.permission_group权限组

构造函数

public Manifest ()

详细

android:allowTaskReparenting

  • 用法<application android:allowTaskReparenting="true/false"></application>
  • 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。
  • 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)
    • “true”,能移动
    • “false”,它必须呆在启动时呆在的那个Task里。默认值为“false”

一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来强制Activity移动到有着affinity的Task中。典型用法是:把一个应用程序的Activity移到另一个应用程序的主Task中。

例如,如果e-mail中包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。这个Activity是由Browser应用程序定义的,但是,现在它作为e-mail Task的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见,并且,当e-mail Task再次进入前台时,就看不到它了。

Actvity的affinity是由taskAffinity特性定义的。Task的affinity是通过读取根Activity的affinity 决定。因此,根据定义,根Activity总是位于相同affinity的Task里。由于启动模式为“singleTask”和 “singleInstance”的Activity只能位于Task的底部,因此,重新宿主只能限于“standard”和“singleTop”模式。

android:alwaysRetainTaskState

  • 用法<activity android:alwaysRetainTaskState="true/false"></activity>
  • 标记Activity所在的Task的状态是否总是由系统来保持
    • “true”,表示总是
    • “false”,表示在某种情形下允许系统恢复Task 到它的初始化状态。默认值是“false”。
  • 这个特性只针对Task的根Activity有意义;对其它Activity来说,忽略之。

一般来说,特定的情形如当用户从主画面重新选择这个Task时,系统会对这个Task进行清理(从stack中删除位于根Activity之上的所有Activivity)。典型的情况,当用户有一段时间没有访问这个Task时也会这么做,例如30分钟。

然而,当这个特性设为“true”时,用户总是能回到这个Task的最新状态,无论他们是如何启动的。

例如,像Browser应用程序,这里有很多的状态(例如多个打开的Tab),用户不想丢失这些状态。

android:clearTaskOnLanunch

  • 用法<activity android:clearTaskOnLanunch=”true/false”></activity>
  • 标记是否从Task中清除所有的Activity,除了根Activity外(每当从主画面重新启动时)
    • “true”,表示总是清除至它的根 Activity,

      • 每次用户重新启动这个Task时,都会进入到它的根Activity中,不管这个Task最后在做些什么,也不管用户是使用 BACK还是HOME离开的。
    • “false”表示不。默认值是“false”。
      • 可能会在一些情形下(参考alwaysRetainTaskState特性)清除Task的 Activity,但不总是。
  • 这个特性只对启动一个新的Task的Activity(根Activity)有意义; 对Task中其它的Activity忽略。

假设,某人从主画面启动了Activity P,并从那里迁移至Activity Q。接下来用户按下HOME,然后返回Activity P。一般,用户可能见到的是Activity Q,因为它是P的Task中最后工作的内容。然而,如果P设定这个特性为“true”,当用户按下HOME并使这个Task再次进入前台时,其上的所有的
Activity(在这里是Q)都将被清除。因此,当返回到这个Task时,用户只能看到P。

如果这个特性和allowTaskReparenting都设定为“true”,那些能重新宿主的Activity会移动到共享affinity的Task中;剩下的Activity都将被抛弃,如上所述。

android:configChanges

当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".

举例:在按下power键时,直接在应用程序里onPause处理就好。当app是竖屏时,这样处理没问题。但是当app是横屏时,按下power键,app会强制回到竖屏,并且会重新调用activity的onCreate。很多时候这不是预期结果,所以就会用到android:configChanges。

在配置文件里设置android:configChanges=”keyboardHidden|orientation”,这样在屏幕方向改变的时候就不会重新调用activity的onCreate()方法,而是调用onConfigurationChanged(),然后在activity里面重在下。

@Override

public void onConfigurationChanged(Configuration newConfig){

         super.onConfigurationChanged(newConfig);

         if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){

                   //横向

         }else{

                   //竖向

         }

}

android:enabled

  • activity 是否可以被实例化
  • 用法:<activity android:enabled="true"></activity>

android:excludeFromRecents

  • 是否可被显示在最近打开的activity列表里
  • 用法:<activity android:excludeFromRecents="true"></activity>

android:exported

是否允许activity被其它程序调用

android:finishOnTaskLaunch

用来标记当用户再次启动它的Task(在主画面选择这个Task)时已经存在的Activity实例是否要关闭(结束)

“true”,表示应该关闭

“false”表示不关闭。默认值是“false”。

如果这个特性和allowTaskReparenting都设定为“true”,这个特性胜出。Activity的affinity忽略。这个 Activity不会重新宿主,但是会销毁。

android.icon

  • 加在应用程序图标
  • 用法:<application android:icon="@drawable/xx_icon"></application>

android:label

定义了每个title栏的名称,但是优先级低于activity中的setTitle()

android:launchMode

用于指示Activity如何启动。这里有四种模式,与Intent对象中的Activity Flags(FLAG_ACTIVITY_*变量)共同作用,来决定Activity如何启动来处理Intent。它们是:

"standard"

"singleTop"

"singleTask"

"singleInstance"

默认模式是“standard”。

“standard”和“singleTop”为第一组,“singleTask”和“singleInstance”为第二组。

第一组可以被实例化很多次。这些实例可以属于任何task并且可以位于activity stack的任何位置。典型的情况是,它们会进入调用startActivity()的Task(除非Intent对象包含 FLAG_ACTIVITY_NEW_TASK标志,在这种情况下会选择一个不同的Task——参考taskAffinity特性)。

taskAffinity详情可见http://blog.csdn.net/zhaoyazhi2129/article/details/28290293

android:multiprocess

允许多进程

android:name

activity的类名, 必须指定

android:onHistory

是否需要移除这个activity当用户切换到其他屏幕时。 这个属性是 API level 3 中引入的

android:permission

http://blog.csdn.net/zhaoyazhi2129/article/details/8998575

android:process

一个activity运行时所在的进程名,所有程序组件运行在应用程序默认的进程中,这个进程名跟应用程序的包名一致。

<application>中的元素process属性能够为所有组件设定一个新的默认值。但是任何组件都可以覆盖这个默认值,允许你将你的程序放在多进程中运行。 如果这个属性被分配的名字以:开头,当这个activity运行时, 一个新的专属于这个程序的进程将会被创建。如果这个进程名以小写字母开头,这个activity将会运行在全局的进程中,被它的许可所提供。

android:screenOrientation

activity显示的模式,

"unspecified" 默认值 "landscape" 风景画模式,宽度比高度大一些 "portrait" 肖像模式, 高度比宽度大。 "user" 用户的设置 "behind" "sensor" "nosensor"

android:stateNotNeeded

是否 activity被销毁和成功重启并不保存状态

android:taskAffinity

activity的亲属关系, 默认情况同一个应用程序下的activity有相同的关系

android:theme

activity的样式主题, 如果没有设置,则activity的主题样式从属于应用程序, 参见<application>元素的theme属性

android:windowSoftInputMode

activity主窗口与软键盘的交互模式, 自从API level 3 被引入

时间: 2024-11-06 08:01:09

android Manifest.xml选项的相关文章

Android Manifest.xml 之 Intent-filter

开始前先post出最简单的AndroidManifest.xml文件: <?xml version="1.0" encoding="UTF-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.actionbarcompat.basic" android:ve

修改air for android Manifest.xml下默认的screenOrientation

最近工作中有这个需求,需要修改AIR for android 生成的apk里的 android:screenOrientation="user"为android:screenOrientation="landscape".原因是一些平台的sdk接入air for android下会出现home键返回界面消失,starling失去焦点的bug.如果改成android:screenOrientation="landscape" ,android:la

Android Manifest XML:组件的声明

一.简介 Android需要一个保存在工程根目录下的XML文件AndroidManifest.xml,Android会使用这个文件来启动你的应用程序. 二.AndroidManifest.xml文件结构 Manifest XML文件中,<manifest>标签有4个标准属性: <application>:这个标签的android:icon属性指向我们放在res/drawable目录中的icon.png文件.android:label属性指向存储在string.xml文件中的应用程序

Android Manifest.xml详解

一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置. 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)

Android Manifest.xml 结构详解

关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activities,services, 等等),他们各自的实现类,各种能被处理的数据和启动位置. 除了能声明程序中的Activities, ContentProviders, Services,和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试) And

Android 学习:Manifest 文件--Android Manifest.xml

典型结构: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sh.tian.myfirstapp" > <application android:allowBackup="true" a

安卓(android)建立项目时失败,出现Android Manifest.xml file missing几种解决方法?(总结中)

安卓(android)建立项目时失败.出现AndroidManifest.xml file missing几种解决方法?(总结中) Eclipse新建项目.遇到这种问题.注意例如以下: 1.文件名称最好不要用中文. 2.文件夹也不要用中文. 3.这个不会出错,但出于程序编写习惯.第一个字母最好为大写.

android manifest.xml 文件

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha 清单文件 包括 包名 应用 各个组件  四大组件 使用到的权限 应用程序所需要的最低安卓应用程序编程接口 版本级别 instrumentation  测试此包 或其他包 instrumentation的意思 是  仪表 ,使用仪器:乐器法:仪表化

android——manifest.xml