程序员人生 网站导航

AndroidMainfest.xml详解——<activity>

栏目:综合技术时间:2017-01-23 20:29:45

语法:

<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>
说明:声明1个实现利用的部份可视化用户界面的 Activity(1个 Activity子类)。 所有 Activity 都必须由清单文件中的 元素表示。 任何未在该处声明的 Activity 都将对系统不可见,并且也永久不会被运行。
属性:

android:allowEmbedded

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

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

正常情况下,当 Activity 启动时,会与启动它的任务关联,并在其全部生命周期中1直留在该任务处。您可以利用该属性强迫 Activity 在其当前任务不再显示时将其父项更改成与其有亲和关系的任务。该属性通经常使用于使利用的 Activity 转移至与该利用关联的主任务。

例如,如果电子邮件包括网页链接,则点击链接会调出可显示网页的 Activity。 该 Activity 由阅读器利用定义,但作为电子邮件任务的1部份启动。 如果将其父项更改成阅读器任务,它会在阅读器下1次转至前台时显示,当电子邮件任务再次转至前台时则会消失。

Activity 的亲和关系由 taskAffinity 属性定义。 任务的亲和关系通过读取其根 Activity 的亲和关系来肯定。因此,依照定义,根 Activity 始终位于具有相同亲和关系的任务当中。 由于具有“singleTask”或“singleInstance”启动模式的 Activity 只能位于任务的根,因此更改父项仅限于“standard”和“singleTop”模式。 (另请参阅 launchMode 属性。)

android:alwaysRetainTaskState系统是不是始终保持 Activity 所在任务的状态 —“true”表示保持,“false”表示允许系统在特定情况下将任务重置到其初始状态。 默许值为“false”。该属性只对任务的根 Activity 成心义;对所有其他 Activity,均疏忽该属性。
正常情况下,当用户从主屏幕重新选择某个任务时,系统会在特定情况下清除该任务(从根 Activity 之上的堆栈中移除所有 Activity)。 系统通常会在用户1段时间(如 30 分钟)内未访问任务时履行此操作。

不过,如果该属性的值是“true”,则不管用户如何到达任务,将始终返回到最后状态的任务。 例如,在网络阅读器这类存在大量用户不愿失去的状态(如多个打开的标签)的利用中,该属性会很有用。

android:autoRemoveFromRecents由具有该属性的 Activity 启动的任务是不是1直保存在概览屏幕中,直至任务中的最后1个 Activity 完成为止。 若为 true,则自动从概览屏幕中移除任务。 它会替换调用方使用的 FLAG_ACTIVITY_RETAIN_IN_RECENTS。 它必须是布尔值“true”或“false”。
android:banner1种为其关联项提供扩大图形化横幅的可绘制资源。 将其与 标记联用可为特定 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,也不管用户是使用返回还是主屏幕按钮离开,都会将用户转至任务的根 Activity。 当值为“false”时,可在某些情况下清除任务中的 Activity(请参阅 alwaysRetainTaskState 属性),但并不是1律可以。

例如,假定有人从主屏幕启动了 Activity P,然后从那里转到 Activity Q。该用户接着按了主屏幕按钮,然后返回到 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”。
这里写图片描述
所有这些配置变更都可能影响利用看到的资源值。 因此,调用 onConfigurationChanged() 时,通常有必要再次获得所有资源(包括视图布局、可绘制对象等),以正确处理变化。
android:documentLaunchMode指定每次启动任务时应如何向其中添加新的 Activity 实例。 该属性允许用户让多个来自同1利用的文档出现在概览屏幕中。
该属性有4个值,会在用户使用该利用打开文档时产生以下效果:
“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 中设置了其中1个标志),并且概览屏幕将为利用显示单个任务,该任务将从用户上次调用的任意 Activity 开始继续履行。
注:对除“none”和“never”之外的值,必须使用 launchMode=”standard” 定义 Activity。 如果未指定此属性,则使用 documentLaunchMode=”none”。

android:enabled系统是不是可将 Activity 实例化 — “true” 表示可以,“false”表示不可以。 默许值为“true”。
元素具有自己的 enabled 属性,该属性适用于所有利用组件,包括 Activity。 和 属性必须都是“true”(由于它们都默许使用该值),系统才能将 Activity 实例化。 如果任何1个属性是“false”,则没法进行实例化。

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

android:exportedActivity 是不是可由其他利用的组件启动 —“true”表示可以,“false”表示不可以。若为“false”,则 Activity 只能由同1利用的组件或使用同1用户 ID 的不同利用启动。
默许值取决于 Activity 是不是包括 Intent 过滤器。没有任何过滤器意味着 Activity 只能通过指定其确切的类名称进行调用。 这意味着 Activity 专供利用内部使用(由于其他利用不知晓其类名称)。 因此,在这类情况下,默许值为“false”。另外一方面,最少存在1个过滤器意味着 Activity 专供外部使用,因此默许值为“true”。

该属性并不是限制 Activity 对其他利用开放度的唯1手段。 您还可以利用权限来限制哪些外部实体可以调用 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:icon1个表示 Activity 的图标。该图标会在需要在屏幕上表示 Activity 时显示给用户。 例如,代表启动任务的 Activity 的图标显示在启动器窗口中。该图标通常附带标签(请参阅 android:label 属性)。

必须将该属性设置为对包括图象定义的可绘制资源的援用。 如果未设置该属性,则改成使用为利用整体指定的图标(请参阅 元素的 icon 属性)。

这个 Activity 的图标 — 不管设置于此处还是由 元素设置 — 同时也是 Activity 所有 Intent 过滤器的默许图标(请参阅 元素的 icon 属性)。

android:label1种可由用户读取的 Activity 标签。该标签会在必须将 Activity 显现给用户时显示在屏幕上。 它通常与 Activity 图标1并显示。
如果未设置该属性,则改成使用为利用整体设置的标签(请参阅 元素的 label 属性)。

这个 Activity 的标签 — 不管设置于此处还是由 元素设置 — 同时也是 Activity 所有 Intent 过滤器的默许标签(请参阅 元素的 label 属性)。

应将该标签设置为对字符串资源的援用,以即可以像用户界面中的其他字符串那样进行本地化。不过,为便于您开发利用,也可将其设置为原始字符串。

android:launchMode有关应如何启动 Activity 的指令。共有4种模式与 Intent 对象中的 Activity 标志(FLAG_ACTIVITY_* 常量)协同工作,以肯定在调用 Activity 处理 Intent 时应履行的操作。 这些模式是:

“standard”
“singleTop”
“singleTask”
“singleInstance”

默许模式是“standard”。

以下表所示,这些模式分为两大类,“standard”和“singleTop”Activity 为1类,“singleTask”和“singleInstance”为另外一类。使用“standard”或“singleTop”启动模式的 Activity 可屡次实例化。 实例可归属任何任务,并且可以位于 Activity 堆栈中的任何位置。 它们通常启动到名为 startActivity() 的任务当中(除非 Intent 对象包括 FLAG_ACTIVITY_NEW_TASK 指令,在此情况下会选择其他任务 — 请参阅 taskAffinity 属性)。

相比之下,“singleTask”和“singleInstance”Activity 只能启动任务。 它们始终位于 Activity 堆栈的根位置。另外,装备1次只能保存1个 Activity 实例 — 只允许1个此类任务。

“standard”和“singleTop”模式只在1个方面有差异: 每次“standard”Activity 有新的 Intent 时,系统都会创建新的类实例来响应当 Intent。每一个实例处理单个 Intent。同理,也可创建新的“singleTop”Activity 实例来处理新的 Intent。 不过,如果目标任务在其堆栈顶部已有1个 Activity 实例,那末该实例将接收新 Intent(通过调用 onNewIntent());此时不会创建新实例。在其他情况下 — 例如,如果“singleTop”的1个现有实例虽在目标任务内,但未处于堆栈顶部,或虽然位于堆栈顶部,但不在目标任务中 — 则系统会创建1个新实例并将其推送到堆栈上。

同理,如果您向上导航到当前堆栈上的某个 Activity,该行动由父 Activity 的启动模式决定。 如果父 Activity 有启动模式 singleTop(或 up Intent 包括 FLAG_ACTIVITY_CLEAR_TOP),则系统会将该父项置于堆栈顶部,并保存其状态。 导航 Intent 由父 Activity 的 onNewIntent() 方法接收。 如果父 Activity 有启动模式 standard(并且 up Intent 不包括 FLAG_ACTIVITY_CLEAR_TOP),则系统会将当前 Activity 及其父项同时弹出堆栈,并创建1个新的父 Activity 实例来接收导航 Intent。

“singleTask”和“singleInstance”模式一样只在1个方面有差异: “singleTask”Activity 允许其他 Activity 成为其任务的组成部份。 它始终位于其任务的根位置,但其他 Activity(必定是“standard”和“singleTop”Activity)可以启动到该任务中。 相反,“singleInstance”Activity 则不允许其他 Activity 成为其任务的组成部份。它是任务中唯1的 Activity。 如果它启动另外一个 Activity,系统会将该 Activity 分配给其他任务 — 就好像 Intent 中包括 FLAG_ACTIVITY_NEW_TASK 1样。
这里写图片描述

如上表所示,standard 是默许模式,并且适用于大多数的 Activity 类型。对许多类型的 Activity 而言,SingleTop 也是1个常见并且有用的启动模式。 其他模式 — singleTask 和 singleInstance - 不合适 大多数利用由于它们所构成的交互模式可能让用户感到陌生,并且与大多数其他利用悬殊。

不管您选择哪种启动模式,请务必在启动期间和使用返回按钮从其他 Activity 和任务返回该 Activity 时对其进行易用性测试。

如需了解有关启动模式及其与 Intent 标志交互的详细信息,请参阅任务和返回栈文档。

android:maxRecents概览屏幕中位于此 Activity 根位置的任务数上限。 到达该条目数时,系统会从概览屏幕中移除最近最少使用的实例。 有效值为 1⑸0(低内存装备使用 25);0 为无效值。 该值必须是整数,例如 50。默许值为 16。
android:multiprocess是不是可以将 Activity 实例启动到启动该实例的组件进程内 —“true”表示可以,“false”表示不可以。默许值为“false”。
正常情况下,新的 Activity 实例会启动到定义它的利用进程内,因此所有 Activity 实例都在同1进程内运行。 不过,如果该标志设置为“true”,Activity 实例即可在多个进程内运行,这样系统就可以在任何使用实例的地方创建实例(条件是权限允许这样做),但这几近毫无必要性或可取的地方。

android:name实现 Activity 的类的名称,是 Activity 的子类。 该属性值应为完全限定类名称(例如,“com.example.project.ExtracurricularActivity”)。不过,为了简便起见,如果名称的第1个字符是句点(例如,“.ExtracurricularActivity”),则名称将追加到 元素中指定的软件包名称。
利用1旦发布,即不应更改该名称(除非您设置了 android:exported=”false”)。

没有默许值。必须指定该名称。

android:noHistory当用户离开 Activity 并且其在屏幕上不再可见时,是不是应从 Activity 堆栈中将其移除并完成(调用其 finish() 方法)—“true”表示应将其完成,“false”表示不应将其完成。 默许值为“false”。
“true”1值表示 Activity 不会留下历史轨迹。 它不会留在任务的 Activity 堆栈内,因此用户将没法返回 Activity。 在此情况下,如果您启动另外一个 Activity 来获得该 Activity 的结果,系统永久不会调用 onActivityResult()。

该属性是在 API 级别 3 引入的。

android:parentActivityNameActivity 逻辑父项的类名称。此处的名称必须与为相应 元素的 android:name 属性指定的类名称1致。
系统会读取该属性,以肯定当用户按下操作栏中的“向上”按钮时应当启动哪个 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="com.example.app.MainActivity" />
</activity>

如需了解有关声明父 Activity 以支持向上导航的详细信息,请浏览提供向上导航。

该属性是在 API 级别 16 引入的。

android:permission客户端启动 Activity 或以其他方式令其响应 Intent 而必须具有的权限的名称。 如果系统还没有向 startActivity() 或 startActivityForResult() 的调用方授与指定权限,其 Intent 将不会传递给 Activity。
如果未设置该属性,则对 Activity 利用 元素的 permission 属性设置的权限。 如果这两个属性均未设置,则 Activity 不受权限保护。

如需了解有关权限的详细信息,请参阅简介的权限1节和另外一份文档安全与权限。

android:process应在其中运行 Activity 的进程的名称。正常情况下,利用的所有组件都在为利用创建的默许进程名称内运行,您无需使用该属性。 但在必要时,您可使用该属性替换默许进程名称,以便让利用组件散布到多个进程中。
如果为该属性分配的名称以冒号(“:”)开头,则会在需要时创建利用专用的新进程,并且 Activity 会在该进程中运行。如果进程名称以小写字符开头,Activity 将在该名称的全局进程中运行,条件是它具有相应的权限。这可让不同利用中的组件同享1个进程,从而减少资源占用。

元素的 process 属性可为所有组件设置1个不同的默许进程名称。

android:relinquishTaskIdentityActivity 是不是将其任务标识符交给任务栈中在其之上的 Activity。 如果任务根 Activity 的该属性设置为“true”,则任务会用其内的下1个 Activity 的 Intent 替换基本 Intent。 如果下1个 Activity 的该属性也设置为“true”,则该 Activity 会将基本 Intent 给予其在同1任务中启动的任何 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 是在多窗口模式下运行,系统会疏忽该属性。
其值可以是以下任1字符串:
这里写图片描述
注:如果您声明其中1个横向或纵向值,系统将其视为对 Activity 运行方向的硬性要求。 因此,您声明的值支持通过 Google Play 之类的服务进行过滤,这样就可以将您的利用只提供给支持 Activity 所要求方向的装备。 例如,如果您声明了 “landscape”、”reverseLandscape” 或 “sensorLandscape”,则您的利用将只提供给支持横向方向的装备。 不过,您还应通过 元素明确声明,您的利用要求采取纵向或横向方向。 例如,。这纯洁是 Google Play(和其他支持它的服务)提供的1种过滤行动,平台本身其实不能控制当装备仅支持特定方向时您的利用能否安装。

android:stateNotNeeded能否在不保存 Activity 状态的情况下将其终止并成功重新启动 —“true”表示可在不斟酌其之前状态的情况下重新启动,“false”表示需要之前状态。 默许值为“false”。
正常情况下,为保存资源而暂时关闭 Activity 前,系统会调用其 onSaveInstanceState() 方法。 该方法将 Activity 确当前状态存储在1个 Bundle 对象中,然后在 Activity 重新启动时将其传递给 onCreate()。 如果该属性设置为“true”,系统可能不会调用 onSaveInstanceState(),并且会向 onCreate() 传递 null 而不是 Bundle - 这与它在 Activity 首次启动时完全1样。

“true”设置可确保 Activity 能够在未保存状态时重新启动。 例如,显示主屏幕的 Activity 可使用该设置来确保其由于某种缘由崩溃时不会被移除。
supportsPictureInPicture
指定 Activity 是不是支持画中画 显示。如果 android:resizeableActivity 是 false,系统会疏忽该属性。

该属性是在 API 级别 24 添加的。

android:taskAffinity与 Activity 有着亲和关系的任务。从概念上讲,具有相同亲和关系的 Activity 归属同1任务(从用户的角度来看,则是归属同1“利用”)。 任务的亲和关系由其根 Activity 的亲和关系肯定。
亲和关系肯定两件事 - Activity 更改到的父项任务(请参阅 allowTaskReparenting 属性)和通过 FLAG_ACTIVITY_NEW_TASK 标志启动 Activity 时将用来容纳它的任务。

默许情况下,利用中的所有 Activity 都具有相同的亲和关系。您可以设置该属性来以不同方式组合它们,乃至可以将在不同利用中定义的 Activity 置于同1任务内。 要指定 Activity 与任何任务均无亲和关系,请将其设置为空字符串。

如果未设置该属性,则 Activity 继承为利用设置的亲和关系(请参阅 元素的 taskAffinity 属性)。 利用默许亲和关系的名称是 元素设置的软件包名称。

android:theme对定义 Activity 整体主题的样式资源的援用。它会自动将 Activity 的上下文设置为使用该主题(请参阅 setTheme()),它还可以引发 Activity 启动前的“启动”动画(以更加符合 Activity 的实际外观)。
如果未设置该属性,则 Activity 继承通过 元素的 theme 属性为利用整体设置的主题。 如果该属性也未设置,则使用默许系统主题。如需了解详细信息,请参阅样式和主题开发者指南。

android:uiOptions针对 Activity UI 的附加选项。
必须是以下值之1。
“none” 无附加 UI 选项。这是默许值。
“splitActionBarWhenNarrow” 当水凭空间受限时(例如在手持装备上的纵向模式下时)在屏幕底部添加1个栏以显示利用栏(也称为操作栏)中的操作项)。 利用栏不是以少许操作项情势出现在屏幕顶部的利用栏中,而是分成了顶部导航区和底部操作项栏。 这可以确保操作项和顶部的导航和标题元素都能取得公道的空间。 菜单项不会拆分到两个栏中,它们始终1起出现。

如需了解有关利用栏的详细信息,请参阅添加利用栏培训课。

该属性是在 API 级别 14 添加的。

android:windowSoftInputModeActivity 的主窗口与包括屏幕软键盘的窗口的交互方式。 该属性的设置影响两个方面: •当 Activity 成为用户注意的焦点时软键盘的状态 — 隐藏还是可见。
•对 Activity 主窗口所做的调剂 — 是不是将其尺寸调小以为软键盘腾出空间,或当窗口部份被软键盘遮挡时是不是平移其内容以使当前焦点可见。

该设置必须是下表所列的值之1,或是1个“state…”值加上1个“adjust…”值的组合。 在任1组中设置多个值(例如,多个“state…”值)都会产生未定义结果。各值之间使用垂直条 (|) 分隔。 例如:

<activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >

此处设置的值(“stateUnspecified”和“adjustUnspecified”除外)替换主题中设置的值。
这里写图片描述

该属性是在 API 级别 3 引入的。
引入的版本:API 级别 1,为 noHistory 和 windowSoftInputMode 以外的所有属性引入,这两个属性则是在 API 级别 3 中增加。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐