Android xml activity属性详解

例子:java

<activity android:allowTaskReparenting=["true" | "false"]
          android:alwaysRetainTaskState=["true" | "false"]
          android:clearTaskOnLaunch=["true" | "false"]
          android:configChanges=["mcc", "mnc", "locale",
                                 "touchscreen", "keyboard", "keyboardHidden",
                                 "navigation", "orientation", "screenLayout",
                                 "fontScale", "uiMode"]
          android:enabled=["true" | "false"]
          android:excludeFromRecents=["true" | "false"]
          android:exported=["true" | "false"]
          android:finishOnTaskLaunch=["true" | "false"]
          android:icon="drawable resource"
          android:label="string resource"
          android:launchMode=["multiple" | "singleTop" |
                              "singleTask" | "singleInstance"]
          android:multiprocess=["true" | "false"]
          android:name="string"
          android:noHistory=["true" | "false"]  
          android:permission="string"
          android:process="string"
          android:screenOrientation=["unspecified" | "user" | "behind" |
                                     "landscape" | "portrait" |
                                     "sensor" | "nosensor"]
          android:stateNotNeeded=["true" | "false"]
          android:taskAffinity="string"
          android:theme="resource or theme"
          android:windowSoftInputMode=["stateUnspecified",
                                       "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible", "adjustUnspecified",
                                       "adjustResize", "adjustPan"] >   
</activity>

属性:android

1. android:allowTaskReparenting浏览器

是否容许activity更换从属的任务,好比从短信息任务 切换到浏览器任务。布局

二、android:alwaysRetainTaskState性能

 是否保留状态不变, 好比切换回home, 再重新打开,activity处于最后的状态。好比一个浏览器拥有不少状态(当打开了多个TAB的时候),用户并不但愿丢失这些状态时,此时可将此属性设置为trueui

三、android:clearTaskOnLaunch spa

好比 P 是 activity, Q 是被P 触发的 activity, 而后返回Home, 从新启动 P,是否显示 Q.net

四、android:configChangescode

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

这个我用过,主要用来看手机方向改变的. android手机在旋转后,layout会从新布局, 如何作到呢?

正常状况下. 若是手机旋转了.当前Activity后杀掉,而后根据方向从新加载这个Activity. 就会从onCreate开始从新加载.

若是你设置了 这个选项, 当手机旋转后,当前Activity以后调用onConfigurationChanged() 方法. 而不跑onCreate方法等.

5.android:enabled

activity 是否能够被实例化

六、android:excludeFromRecents

是否可被显示在最近打开的activity列表里,默认是false

7.android:exported

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

八、android:finishOnTaskLaunch

当用户从新启动这个任务的时候,是否关闭已打开的activity,默认是false

若是这个属性和allowTaskReparenting都是true,这个属性就是王牌。Activity的亲和力将被忽略。该Activity已经被摧毁并不是re-parented

九、android:launchMode(Activity加载模式)

在多Activity开发中,有多是本身应用之间的Activity跳转,或者夹带其余应用的可复用Activity。可能会但愿跳转到原来某个Activity实例,而不是产生大量重复的Activity。这须要为Activity配置特定的加载模式,而不是使用默认的加载模式

Activity有四种加载模式:

standard、singleTop、singleTask、singleInstance(其中前两个是一组、后两个是一组),默认为standard 

standard:就是intent将发送给新的实例,因此每次跳转都会生成新的activity。

singleTop:也是发送新的实例,但不一样standard的一点是,在请求的Activity正好位于栈顶时(配置成singleTop的Activity),不会构造新的实例

singleTask:和后面的singleInstance都只建立一个实例,当intent到来,须要建立设置为singleTask的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。若是有直接将intent发送给它。

singleInstance:首先说明一下task这个概念,Task能够认为是一个栈,可放入多个Activity。好比启动一个应用,那么Android就建立了一个Task,而后启动这个应用的入口Activity,那在它的界面上调用其余的Activity也只是在这个task里面。那若是在多个task中共享一个Activity的话怎么办呢。举个例来讲,若是开启一个导游服务类的应用程序,里面有个Activity是开启GOOGLE地图的,当按下home键退回到主菜单又启动GOOGLE地图的应用时,显示的就是刚才的地图,其实是同一个Activity,实际上这就引入了singleInstance。singleInstance模式就是将该Activity单独放入一个栈中,这样这个栈中只有这一个Activity,不一样应用的intent都由这个Activity接收和展现,这样就作到了共享。固然前提是这些应用都没有被销毁,因此刚才是按下的HOME键,若是按下了返回键,则无效。具体可看这篇文章 Android Activity中的四种启动模式 

十、android:multiprocess

是否容许多进程,默认是false

十一、android:noHistory

当用户从Activity上离开而且它在屏幕上再也不可见时,Activity是否从Activity stack中清除并结束。默认是false。Activity不会留下历史痕迹

十二、android:process

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

中的元素process属性可以为全部组件设定一个新的默认值。可是任何组件均可以覆盖这个默认值,容许你   

将你的程序放在多进程中运行。 若是这个属性被分配的名字以:开头,当这个activity运行时,一个新的专属于这个程序的   

进程将会被建立。若是这个进程名以小写字母开头,这个activity将会运行在全局的进程中,被它的许可所提供。

1三、android:screenOrientation

activity显示的模式

默认为unspecified:由系统自动判断显示方向

landscape横屏模式,宽度比高度大

portrait竖屏模式, 高度比宽度大

user模式,用户当前首选的方向

behind模式:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)

sensor模式:有物理的感应器来决定。若是用户旋转设备这屏幕会横竖屏切换

nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了

1四、android:stateNotNeeded

activity被销毁或者成功重启时是否保存状态

1五、android:taskAffinity

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

1六、android:theme

activity的样式主题, 若是没有设置,则activity的主题样式从属于应用程序, 参见元素的theme属性

1七、android:windowSoftInputMode

activity主窗口与软键盘的交互模式,能够用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

这个属性能影响两件事情:

【A】当有焦点产生时,软键盘是隐藏仍是显示

【B】是否减小活动主窗口大小以便腾出空间放软键盘

各值的含义:

【A】stateUnspecified:软键盘的状态并无指定,系统将选择一个合适的状态或依赖于主题的设置

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,不管是隐藏仍是显示

【C】stateHidden:用户选择activity时,软键盘老是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也老是被隐藏的

【E】stateVisible:软键盘一般是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘老是显示的状态

【G】adjustUnspecified:默认设置,一般由系统自行决定是隐藏仍是显示

【H】adjustResize:该Activity老是调整屏幕的大小以便留出软键盘的空间

【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能老是看到输入内容的部分

相关文章
相关标签/搜索