AndroidMainfest.xml具体解释——<activity>

黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述AndroidMainfest.xml具体解释——& lt; activity& gt; 相关的知识,希望能为你提供帮助。
语法:

< activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:clearTaskOnLaunch=["true" | "false"] android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "screenLayout", "fontScale", "uiMode", "orientation", "screenSize", "smallestScreenSize"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance"] android:maxRecents="integer" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > . . . < /activity>

包括它的文件:< application>
可包括:< intent-filter> < meta-data>
说明:声明一个实现应用的部分可视化用户界面的 Activity(一个 Activity子类)。
全部 Activity 都必须由清单文件里的元素表示。 不论什么未在该处声明的 Activity 都将对系统不可见,而且也永远不会被执行。

属性:
android:allowEmbedded

表示该 Activity 可作为还有一 Activity 的嵌入式子项启动。 它尤其适用于子项所在的容器(如 Display)为还有一 Activity 所拥有的情况。 比如,用于 Wear 自己定义通知的 Activity 必须声明此项。以便 Wear 在其上下文流中显示 Activity。后者位于还有一进程中。
该属性的默认值为 false。

android:allowTaskReparenting当启动 Activity 的任务接下来转至前台时,Activity 能否从该任务转移至与其有亲和关系的任务 —“true”表示它能够转移,“false”表示它仍须留在启动它的任务处。
假设未设置该属性,则对 Activity 应用由元素的对应 allowTaskReparenting 属性设置的值。 默认值为“false”。

正常情况下,当 Activity 启动时。会与启动它的任务关联,并在其整个生命周期中一直留在该任务处。
您能够利用该属性强制 Activity 在其当前任务不再显示时将其父项更改为与其有亲和关系的任务。该属性通经常使用于使应用的 Activity 转移至与该应用关联的主任务。
比如,假设电子邮件包括网页链接。则点击链接会调出可显示网页的 Activity。
该 Activity 由浏览器应用定义。但作为电子邮件任务的一部分启动。 假设将其父项更改为浏览器任务。它会在浏览器下一次转至前台时显示,当电子邮件任务再次转至前台时则会消失。
Activity 的亲和关系由 taskAffinity 属性定义。
任务的亲和关系通过读取其根 Activity 的亲和关系来确定。因此,依照定义。根 Activity 始终位于具有同样亲和关系的任务之中。 由于具有“singleTask”或“singleInstance”启动模式的 Activity 仅仅能位于任务的根,因此更改父项仅限于“standard”和“singleTop”模式。 (另请參阅 launchMode 属性。

android:alwaysRetainTaskState系统是否始终保持 Activity 所在任务的状态 —“true”表示保持,“false”表示同意系统在特定情况下将任务重置到其初始状态。 默认值为“false”。该属性仅仅对任务的根 Activity 有意义;对于全部其它 Activity,均忽略该属性。

正常情况下。当用户从主屏幕又一次选择某个任务时,系统会在特定情况下清除该任务(从根 Activity 之上的堆栈中移除全部 Activity)。 系统一般会在用户一段时间(如 30 分钟)内未訪问任务时执行此操作。
只是,假设该属性的值是“true”。则不管用户怎样到达任务,将始终返回到最后状态的任务。 比如,在网络浏览器这类存在大量用户不愿失去的状态(如多个打开的标签)的应用中。该属性会非常实用。
【AndroidMainfest.xml具体解释——& lt; activity& gt; 】android:autoRemoveFromRecents由具有该属性的 Activity 启动的任务是否一直保留在概览屏幕中。直至任务中的最后一个 Activity 完毕为止。 若为 true。则自己主动从概览屏幕中移除任务。 它会替换调用方使用的 FLAG_ACTIVITY_RETAIN_IN_RECENTS。 它必须是布尔值“true”或“false”。
android:banner一种为其关联项提供扩展图形化横幅的可绘制资源。 将其与标记联用可为特定 Activity 提供默认横幅。也可与标记联用,为全部应用 Activity 提供横幅。

系统使用横幅在 Android TV 主屏幕中表示应用。
由于横幅仅仅显示在主屏幕中,因此仅仅应由包括的 Activity 能够处理 CATEGORY_LEANBACK_LAUNCHER Intent 的应用指定。
必须将该属性设置为对包括图像的可绘制资源的引用(比如 “@drawable/banner”)。
没有默认横幅。

如需了解具体信息,请參阅“面向电视的 UI 模式”设计指南中的横幅。以及“电视应用入门指南”中的提供主屏幕横幅。
android:clearTaskOnLaunch是否每当从主屏幕又一次启动任务时都从中移除根 Activity 之外的全部 Activity —“true”表示始终将任务清除到仅仅剩其根 Activity;“false”表示不做清除。 默认值为“false”。该属性仅仅对启动新任务的 Activity(根 Activity)有意义;对于任务中的全部其它 Activity。均忽略该属性。
当值为“true”时。每次用户再次启动任务时,不管用户最后在任务中正在执行哪个 Activity,也不管用户是使用返回还是主屏幕button离开,都会将用户转至任务的根 Activity。 当值为“false”时,可在某些情况下清除任务中的 Activity(请參阅 alwaysRetainTaskState 属性),但并不是一律能够。
比如。假定有人从主屏幕启动了 Activity P,然后从那里转到 Activity Q。
该用户接着按了主屏幕button,然后返回到 Activity P。正常情况下。用户将看到 Activity Q。由于那是其最后在 P 的任务中执行的 Activity。 只是,假设 P 将此标志设置为“true”,则当用户按下主屏幕将任务转入后台时,其上的全部 Activity(在本例中为 Q)都会被移除。
因此用户返回任务时仅仅会看到 P。
假设该属性和 allowTaskReparenting 的值均为“true”。则如上所述,不论什么能够更改父项的 Activity 都将转移到与其有亲和关系的任务;其余 Activity 随即被移除。
android:configChanges列出 Activity 将自行处理的配置更改。在执行时发生配置更改时,默认情况下会关闭 Activity 然后将其又一次启动。但使用该属性声明配置将阻止 Activity 又一次启动。 Activity 反而会保持执行状态,而且系统会调用其 onConfigurationChanged() 方法。
注:应避免使用该属性,而且仅仅应在万不得已的情况下使用。 如需了解有关怎样正确处理配置更改所致又一次启动的具体信息,请阅读处理执行时变更。

不论什么或全部下列字符串均是该属性的有效值。多个值使用“|”分隔 — 比如,“locale|navigation|orientation”。
AndroidMainfest.xml具体解释——&amp;lt;activity&amp;gt;

文章图片

全部这些配置变更都可能影响应用看到的资源值。 因此,调用 onConfigurationChanged() 时,通常有必要再次获取全部资源(包括视图布局、可绘制对象等),以正确处理变化。
android:documentLaunchMode指定每次启动任务时应怎样向当中加入新的 Activity 实例。 该属性同意用户让多个来自同一应用的文档出如今概览屏幕中。
该属性有四个值,会在用户使用该应用打开文档时产生下面效果:
“intoExisting” Activity 会为文档反复使用现有任务。
使用该值与不设置 FLAG_ACTIVITY_MULTIPLE_TASK 标志、但设置 FLAG_ACTIVITY_NEW_DOCUMENT 标志所产生的效果同样,如使用 Intent 标志加入任务中所述。

“always” Activity 为文档创建新任务。即便文档已打开也是如此。
这与同一时候设置 FLAG_ACTIVITY_NEW_DOCUMENT 和 FLAG_ACTIVITY_MULTIPLE_TASK 标志的效果同样。

“none” 该 Activity 不会为 Activity 创建新任务。
这是默认值,它仅仅会在设置了 FLAG_ACTIVITY_NEW_TASK 时创建新任务。
概览屏幕将按其默认方式对待此 Activity:为应用显示单个任务,该任务将从用户上次调用的随意 Activity 開始继续执行。

“never” 即使 Intent 包括 FLAG_ACTIVITY_NEW_DOCUMENT,该 Activity 也不会启动到新文档之中。 设置此值会替代 FLAG_ACTIVITY_NEW_DOCUMENT 和 FLAG_ACTIVITY_MULTIPLE_TASK 标志的行为(假设在 Activity 中设置了当中一个标志)。而且概览屏幕将为应用显示单个任务,该任务将从用户上次调用的随意 Activity 開始继续执行。

注:对于除“none”和“never”以外的值。必须使用 launchMode=”standard” 定义 Activity。 假设未指定此属性。则使用 documentLaunchMode=”none”。

android:enabled系统是否可将 Activity 实例化 — “true” 表示能够。“false”表示不能够。 默认值为“true”。
元素具有自己的 enabled 属性,该属性适用于全部应用组件,包括 Activity。和属性必须都是“true”(由于它们都默认使用该值),系统才干将 Activity 实例化。 假设不论什么一个属性是“false”。则无法进行实例化。

android:excludeFromRecents是否应将该 Activity 启动的任务排除在近期使用的应用列表(即概览屏幕)之外。 也就是说,当该 Activity 是新任务的根 Activity 时,此属性确定任务是否应出如今近期使用的应用列表中。
假设应将任务排除在列表之外,请设置“true”;假设应将其包括在内,则设置“false”。 默认值为“false”。

android:exportedActivity 是否可由其它应用的组件启动 —“true”表示能够,“false”表示不能够。若为“false”,则 Activity 仅仅能由同一应用的组件或使用同一用户 ID 的不同应用启动。
默认值取决于 Activity 是否包括 Intent 过滤器。没有不论什么过滤器意味着 Activity 仅仅能通过指定其确切的类名称进行调用。 这意味着 Activity 专供应用内部使用(由于其它应用不知晓其类名称)。
因此。在这样的情况下,默认值为“false”。还有一方面,至少存在一个过滤器意味着 Activity 专供外部使用,因此默认值为“true”。
该属性并不是限制 Activity 对其它应用开放度的唯一手段。 您还能够利用权限来限制哪些外部实体能够调用 Activity(请參阅 permission 属性)。
android:finishOnTaskLaunch每当用户再次启动其任务(在主屏幕上选择任务)时,是否应关闭(完毕)现有 Activity 实例 —“true”表示应关闭。“false”表示不应关闭。 默认值为“false”。
假设该属性和 allowTaskReparenting 均为“true”,则优先使用该属性。 Activity 的亲和关系会被忽略。 系统不是更改 Activity 的父项,而是将其销毁。
android:hardwareAccelerated是否应为此 Activity 启用硬件加速渲染 —“true”表示应启用,“false”表示不应启用。 默认值为“false”。
从 Android 3.0 開始。为应用提供了硬件加速 OpenGL 渲染器,以改善很多常见 2D 图形运算的性能。 启用硬件加速渲染器时。Canvas、Paint、Xfermode、ColorFilter、Shader 和 Camera 中的大多数运算都会得到加速。这能够提高动画、滚动的流畅度和总体响应速度。即便是并不明白使用框架 OpenGL 库的应用也会受益。 由于启用硬件加速会添加资源消耗。因此您的应用将占用很多其它内存。
请注意。并不是全部 OpenGL 2D 运算都会得到加速。假设您启用硬件加速渲染器,请对应用进行測试,以确保其在利用渲染器时不会出错。
android:icon一个表示 Activity 的图标。
该图标会在须要在屏幕上表示 Activity 时显示给用户。
比如。代表启动任务的 Activity 的图标显示在启动器窗体中。该图标通常附带标签(请參阅 android:label 属性)。
必须将该属性设置为对包括图像定义的可绘制资源的引用。
假设未设置该属性,则改为使用为应用总体指定的图标(请參阅元素的 icon 属性)。
这个 Activity 的图标 — 不管设置于此处还是由元素设置 — 同一时候也是 Activity 全部 Intent 过滤器的默认图标(请參阅元素的 icon 属性)。
android:label一种可由用户读取的 Activity 标签。
该标签会在必须将 Activity 呈现给用户时显示在屏幕上。 它通常与 Activity 图标一并显示。
假设未设置该属性,则改为使用为应用总体设置的标签(请參阅元素的 label 属性)。
这个 Activity 的标签 — 不管设置于此处还是由元素设置 — 同一时候也是 Activity 全部 Intent 过滤器的默认标签(请參阅元素的 label 属性)。
应将该标签设置为对字符串资源的引用。以便能够像用户界面中的其它字符串那样进行本地化。只是。为便于您开发应用,也可将其设置为原始字符串。
android:launchMode有关应怎样启动 Activity 的指令。共同拥有四种模式与 Intent 对象中的 Activity 标志(FLAG_ACTIVITY_* 常量)协同工作,以确定在调用 Activity 处理 Intent 时应执行的操作。
这些模式是:
“standard”
“singleTop”
“singleTask”
“singleInstance”
默认模式是“standard”。

例如以下表所看到的,这些模式分为两大类。“standard”和“singleTop”Activity 为一类,“singleTask”和“singleInstance”为还有一类。使用“standard”或“singleTop”启动模式的 Activity 可多次实例化。 实例可归属不论什么任务,而且能够位于 Activity 堆栈中的不论什么位置。 它们通常启动到名为 startActivity() 的任务之中(除非 Intent 对象包括 FLAG_ACTIVITY_NEW_TASK 指令,在此情况下会选择其它任务 — 请參阅 taskAffinity 属性)。

相比之下,“singleTask”和“singleInstance”Activity 仅仅能启动任务。
它们始终位于 Activity 堆栈的根位置。此外,设备一次仅仅能保留一个 Activity 实例 — 仅仅同意一个此类任务。
“standard”和“singleTop”模式仅仅在一个方面有差异: 每次“standard”Activity 有新的 Intent 时,系统都会创建新的类实例来响应该 Intent。
每一个实例处理单个 Intent。同理,也可创建新的“singleTop”Activity 实例来处理新的 Intent。
只是,假设目标任务在其堆栈顶部已有一个 Activity 实例。那么该实例将接收新 Intent(通过调用 onNewIntent());此时不会创建新实例。
在其它情况下 — 比如。假设“singleTop”的一个现有实例虽在目标任务内,但未处于堆栈顶部,或者尽管位于堆栈顶部。但不在目标任务中 — 则系统会创建一个新实例并将其推送到堆栈上。
同理,假设您向上导航到当前堆栈上的某个 Activity。该行为由父 Activity 的启动模式决定。 假设父 Activity 有启动模式 singleTop(或 up Intent 包括 FLAG_ACTIVITY_CLEAR_TOP)。则系统会将该父项置于堆栈顶部。并保留其状态。 导航 Intent 由父 Activity 的 onNewIntent() 方法接收。
假设父 Activity 有启动模式 standard(而且 up Intent 不包括 FLAG_ACTIVITY_CLEAR_TOP)。则系统会将当前 Activity 及其父项同一时候弹出堆栈。并创建一个新的父 Activity 实例来接收导航 Intent。

“singleTask”和“singleInstance”模式同样仅仅在一个方面有差异: “singleTask”Activity 同意其它 Activity 成为其任务的组成部分。 它始终位于其任务的根位置,但其它 Activity(必定是“standard”和“singleTop”Activity)能够启动到该任务中。 相反,“singleInstance”Activity 则不同意其它 Activity 成为其任务的组成部分。它是任务中唯一的 Activity。 假设它启动还有一个 Activity,系统会将该 Activity 分配给其它任务 — 就好像 Intent 中包括 FLAG_ACTIVITY_NEW_TASK 一样。
AndroidMainfest.xml具体解释——&amp;lt;activity&amp;gt;

文章图片

如上表所看到的,standard 是默认模式。而且适用于大多数的 Activity 类型。对很多类型的 Activity 而言,SingleTop 也是一个常见而且实用的启动模式。 其它模式 — singleTask 和 singleInstance - 不适合 大多数应用由于它们所形成的交互模式可能让用户感到陌生,而且与大多数其它应用迥异。
不管您选择哪一种启动模式,请务必在启动期间以及使用返回button从其它 Activity 和任务返回该 Activity 时对其进行易用性測试。
如需了解有关启动模式及其与 Intent 标志交互的具体信息,请參阅任务和返回栈文档。

android:maxRecents概览屏幕中位于此 Activity 根位置的任务数上限。 达到该条目数时,系统会从概览屏幕中移除近期最少使用的实例。 有效值为 1-50(低内存设备使用 25);0 为无效值。 该值必须是整数,比如 50。
默认值为 16。

android:multiprocess能否够将 Activity 实例启动到启动该实例的组件进程内 —“true”表示能够,“false”表示不能够。默认值为“false”。
正常情况下。新的 Activity 实例会启动到定义它的应用进程内。因此全部 Activity 实例都在同一进程内执行。
只是,假设该标志设置为“true”,Activity 实例便可在多个进程内执行,这样系统就能在不论什么使用实例的地方创建实例(前提是权限同意这样做),但这差点儿毫无必要性或可取之处。

android:name实现 Activity 的类的名称。是 Activity 的子类。 该属性值应为全然限定类名称(比如,“com.example.project.ExtracurricularActivity”)。只是,为了简便起见,假设名称的第一个字符是句点(比如。“.ExtracurricularActivity”),则名称将追加到元素中指定的软件包名称。
应用一旦公布。即不应更改该名称(除非您设置了 android:exported=”false”)。
没有默认值。
必须指定该名称。

android:noHistory当用户离开 Activity 而且其在屏幕上不再可见时,是否应从 Activity 堆栈中将其移除并完毕(调用其 finish() 方法)—“true”表示应将其完毕,“false”表示不应将其完毕。 默认值为“false”。
“true”一值表示 Activity 不会留下历史轨迹。
它不会留在任务的 Activity 堆栈内,因此用户将无法返回 Activity。 在此情况下,假设您启动还有一个 Activity 来获取该 Activity 的结果。系统永远不会调用 onActivityResult()。
该属性是在 API 级别 3 引入的。
android:parentActivityNameActivity 逻辑父项的类名称。此处的名称必须与为对应元素的 android:name 属性指定的类名称一致。
系统会读取该属性,以确定当用户按下操作栏中的“向上”button时应该启动哪一个 Activity。 系统还能够利用这些信息通过 TaskStackBuilder 合成 Activity 的返回栈。
要支持 API 级别 4 - 16,您还能够使用为 “android.support.PARENT_ACTIVITY” 指定值的元素来声明父 Activity。比如:
< activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > < !-- Parent activity meta-data to support API level 4+ --> < meta-data android:name="android.support.PARENT_ACTIVITY" android:value="https://www.songbingjia.com/android/com.example.app.MainActivity" /> < /activity>

如需了解有关声明父 Activity 以支持向上导航的具体信息,请阅读提供向上导航。
该属性是在 API 级别 16 引入的。

android:permissionclient启动 Activity 或以其它方式令其响应 Intent 而必须具备的权限的名称。
假设系统尚未向 startActivity() 或 startActivityForResult() 的调用方授予指定权限,其 Intent 将不会传递给 Activity。

假设未设置该属性,则对 Activity 应用元素的 permission 属性设置的权限。 假设这两个属性均未设置,则 Activity 不受权限保护。

如需了解有关权限的具体信息。请參阅简单介绍的权限一节和还有一份文档安全与权限。

android:process应在当中执行 Activity 的进程的名称。
正常情况下,应用的全部组件都在为应用创建的默认进程名称内执行。您无需使用该属性。
但在必要时,您能够使用该属性替换默认进程名称,以便让应用组件散布到多个进程中。
假设为该属性分配的名称以冒号(“:”)开头,则会在须要时创建应用专用的新进程。而且 Activity 会在该进程中执行。假设进程名称以小写字符开头,Activity 将在该名称的全局进程中执行,前提是它拥有对应的权限。这能够让不同应用中的组件共享一个进程,从而降低资源占用。

元素的 process 属性可为全部组件设置一个不同的默认进程名称。

android:relinquishTaskIdentityActivity 是否将其任务标识符交给任务栈中在其之上的 Activity。 假设任务根 Activity 的该属性设置为“true”,则任务会用其内的下一个 Activity 的 Intent 替换基本 Intent。
假设下一个 Activity 的该属性也设置为“true”。则该 Activity 会将基本 Intent 给予其在同一任务中启动的不论什么 Activity。 系统继续为每一个 Activity 执行此过程,直至遇到的某个 Activity 将该属性设置为“false”为止。 默认值为“false”。
假设该属性设置为“true”。则 Activity 还可利用 ActivityManager.TaskDescription 来更改概览屏幕中的标签、颜色和图标。
resizeableActivity
指定应用是否支持多窗体显示。
您能够在或元素中设置该属性。
假设您将该属性设置为 true。则用户能够分屏和自由形状模式启动 Activity。 假设您将该属性设置为 false,Activity 将不支持多窗体模式。 假设该值为 false,且用户尝试在多窗体模式下启动 Activity,该 Activity 将全屏显示。

假设您的应用面向 API 级别 24 或更高级别,但未对该属性指定值,则该属性的值默认设为 true。
该属性是在 API 级别 24 加入的。

android:screenOrientationActivity 在设备上的显示方向。假设 Activity 是在多窗体模式下执行。系统会忽略该属性。
其值能够是下列任一字符串:
AndroidMainfest.xml具体解释——&amp;lt;activity&amp;gt;

文章图片

注:假设您声明当中一个横向或纵向值,系统将其视为对 Activity 执行方向的硬性要求。 因此。您声明的值支持通过 Google Play 之类的服务进行过滤。这样就能将您的应用仅仅提供给支持 Activity 所要求方向的设备。 比如,假设您声明了 “landscape”、”reverseLandscape” 或 “sensorLandscape”。则您的应用将仅仅提供给支持横向方向的设备。 只是。您还应通过元素明白声明,您的应用要求採用纵向或横向方向。 比如。。这纯粹是 Google Play(以及其它支持它的服务)提供的一种过滤行为,平台本身并不能控制当设备仅支持特定方向时您的应用能否安装。

android:stateNotNeeded能否在不保存 Activity 状态的情况下将其终止并成功又一次启动 —“true”表示可在不考虑其之前状态的情况下又一次启动,“false”表示须要之前状态。
默认值为“false”。
正常情况下,为保存资源而临时关闭 Activity 前,系统会调用其 onSaveInstanceState() 方法。 该方法将 Activity 的当前状态存储在一个 Bundle 对象中,然后在 Activity 又一次启动时将其传递给 onCreate()。 假设该属性设置为“true”,系统可能不会调用 onSaveInstanceState()。而且会向 onCreate() 传递 null 而不是 Bundle - 这与它在 Activity 首次启动时全然一样。
“true”设置可确保 Activity 能够在未保留状态时又一次启动。 比如。显示主屏幕的 Activity 能够使用该设置来确保其由于某种原因崩溃时不会被移除。

supportsPictureInPicture
指定 Activity 是否支持画中画 显示。假设 android:resizeableActivity 是 false,系统会忽略该属性。
该属性是在 API 级别 24 加入的。

android:taskAffinity与 Activity 有着亲和关系的任务。
从概念上讲。具有同样亲和关系的 Activity 归属同一任务(从用户的角度来看,则是归属同一“应用”)。
任务的亲和关系由其根 Activity 的亲和关系确定。
亲和关系确定两件事 - Activity 更改到的父项任务(请參阅 allowTaskReparenting 属性)和通过 FLAG_ACTIVITY_NEW_TASK 标志启动 Activity 时将用来容纳它的任务。
默认情况下。应用中的全部 Activity 都具有同样的亲和关系。您能够设置该属性来以不同方式组合它们,甚至能够将在不同应用中定义的 Activity 置于同一任务内。 要指定 Activity 与不论什么任务均无亲和关系,请将其设置为空字符串。
假设未设置该属性,则 Activity 继承为应用设置的亲和关系(请參阅元素的 taskAffinity 属性)。
应用默认亲和关系的名称是元素设置的软件包名称。
android:theme对定义 Activity 总体主题的样式资源的引用。
它会自己主动将 Activity 的上下文设置为使用该主题(请參阅 setTheme()),它还能够引发 Activity 启动前的“启动”动画(以更加符合 Activity 的实际外观)。
假设未设置该属性,则 Activity 继承通过元素的 theme 属性为应用总体设置的主题。
假设该属性也未设置,则使用默认系统主题。如需了解具体信息,请參阅样式和主题开发人员指南。
android:uiOptions针对 Activity UI 的附加选项。
必须是下列值之中的一个。
“none” 无附加 UI 选项。这是默认值。

“splitActionBarWhenNarrow” 当水平空间受限时(比如在手持设备上的纵向模式下时)在屏幕底部加入一个栏以显示应用栏(也称为操作栏)中的操作项)。 应用栏不是以少量操作项形式出如今屏幕顶部的应用栏中,而是分成了顶部导航区和底部操作项栏。
这能够确保操作项以及顶部的导航和标题元素都能获得合理的空间。 菜单项不会拆分到两个栏中,它们始终一起出现。

如需了解有关应用栏的具体信息,请參阅加入应用栏培训课。

该属性是在 API 级别 14 加入的。
android:windowSoftInputModeActivity 的主窗体与包括屏幕软键盘的窗体的交互方式。 该属性的设置影响两个方面: ?当 Activity 成为用户注意的焦点时软键盘的状态 — 隐藏还是可见。
?对 Activity 主窗体所做的调整 — 是否将其尺寸调小以为软键盘腾出空间,或者当窗体部分被软键盘遮挡时是否平移其内容以使当前焦点可见。
该设置必须是下表所列的值之中的一个,或者是一个“state…”值加上一个“adjust…”值的组合。 在任一组中设置多个值(比如,多个“state…”值)都会产生没有定义结果。各值之间使用垂直条 (|) 分隔。 比如:
< activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >

此处设置的值(“stateUnspecified”和“adjustUnspecified”除外)替换主题中设置的值。

AndroidMainfest.xml具体解释——&amp;lt;activity&amp;gt;

文章图片

该属性是在 API 级别 3 引入的。
引入的版本号:API 级别 1。为 noHistory 和 windowSoftInputMode 之外的全部属性引入。这两个属性则是在 API 级别 3 中添加。

    推荐阅读