属性-乱七八糟
常见属性解释
- android:allowTaskReparenting 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。
- android:alwaysRetainTaskState 是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态
- android:clearTaskOnLanunch 比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 从新启动 P, 是否显示 Q
- android:configChanges 当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
- android:enabledactivity 是否可以被实例化
- android:excludeFromRecents 是否可被显示在最近打开的activity列表里
- android:exported 是否允许activity被其它程序调用
- android:finishOnTaskLaunch 是否关闭已打开的activity当用户重新启动这个任务的时候
- android.icon
- android:label
- android:launchMode activity启动方式, "standard" "singleTop" "singleTask" "singleInstance"
- android:multiprocess 允许多进程
- android:name activity的类名必须指定
- androidnHistory 是否需要移除这个activity当用户切换到其他屏幕时。 这个属性是 API level 3 中引入的
- android:permission
- android:process 一 个activity运行时所在的进程名
- android:screenOrientation activity显示的模式, "unspecified" 默认值 "landscape" 风景画模式,宽度比高度大一些 "portrait" 肖像模式, 高度比宽度大。 "user" 用户的设置 "behind" "sensor" "nosensor"
- android:stateNotNeeded 是否 activity被销毁和成功重启并不保存状态
- android:taskAffinity activity的亲属关系, 默认情况同一个应用程序下的activity有相同的关系
- android:theme activity的样式主题, 如果没有设置,则activity的主题样式从属于应用程序
- android:windowSoftInputMode activity主窗口与软键盘的交互模式, 自从API level 3 被引入
- android:authorities
标识内容提供器范围内的数据URI的授权列表,有多个授权时,要用分号来分离每个授权。为了避免冲突,授权名应该使用Java样式的命名规则(如:com.example.provider.cartoonprovider)。通常,用ContentProvider子类名称来设定这个属性。
这个属性没有默认值,至少要指定一个授权。
- android:exported
这个属性用于指定该内容提供器是否能够被其他的应用程序组件使用。如果设置为true,则可以被使用,否则不能被使用。如果设置为false,该提供器只对同名的应用程序或有相同用户ID的应用程序有效。默认值是true。
虽然能够使用这个属性来公开内容提供器,但是依然还要用permission属性来限制对它的访问。
- android:grantUriPermission
这个属性用于设定那些对内容提供的数据没有访问权限的访问者,是否能够被授予访问的权限,这个权限是临时性的,它会克服由readPermission、writePermission和permission属性的设置限制。如果这个属性设置为true,那么权限就可以授予访问者,否则不会授予没有访问权限的访问者。如果设置为true,则权限可以临时被授予内容提供器的任何数据。如果设置为false,则权限只能被授予<gran-uri-permission>子元素中所列出的数据子集。默认值是false。
这种授权是应用程序提供了一种一次性访问被权限所保护的数据的方法。例如,当一个e-mail包含了一个附件时,mail应用程序就可以调用适当的浏览器来打开附件,即使这个浏览器没有查看所有内容提供器数据的权限。
在这样的场景中,权限是通过激活组件的Intent对象中的FLAG_GRANT_READ_URI_PERMISSION和FLAG_GRANT_WRITE_URI_PERMISSION标记来授予的。例如,mail应用程序可以把FLAG_GRANT_READ_URI_PERMISSION标记放到传递给Context.startActivity()方法的Intent参数中。这样权限就被授予了Intent对象中所指定的URI。
如果要启用这个功能,既可以通过把这个属性设置为true来完成,也可以通过定义<grant-uri-permission>子元素来实现,在切换RUI时,必须调用Context.revokeUriPermission()方法从提供器把权限删除。
- android:icon
这个属性用于定义一个代表内容提供器的图标。它必须要引用一个包含图片定义的可绘制资源。如果这个属性没有设置,那么就会使用应用程序的<application>元素的icon属性值来代替。
- android:initOrder
这个属性用于定义内容提供器应该被实例化的顺序,这个顺序是相对与相同进程所拥有的其他内容提供器的。当内容提供器间有相互的依赖时,就需要设置这个属性,以确保它们能够按照其依赖的顺序被创建。这个属性值是一个简单的整数,大的数字要被优先初始化。
- android:multiprocess
这个属性用于设定是否能够在每个使用该内容提供器的客户端进程中都创建一个内容提供器的实例,如果设置为true,这个能够在其每个客户端进程中创建一个实例,否则不可以。默认值是false。
通常,内容提供器是在定义它的应用程序的进程中被实例化的。但是,如果这个属性被设置为true,系统就能够在每个要与该内容提供器进行交互的客户端进程中创建一个内容提供器的实例,这样就避免了进程间通信的开销。
- android:permission
这个属性用于设定客户端在读写内容提供器的数据时必须要有的权限的名称。这个属性为同时设置读写权限提供了一种便利的方法。但是readPermission和writePermission属性的优先级要比这个属性高。如果readPermission属性也被设置了,那么它就会控制对内容提供器的查询访问。如果writePermission属性被设置,它就会控制对内容提供器数据的修改访问。
- android:process
这个属性用于定义内容提供器应该运行在那个进程中的进程名称。通常,应用程序的所有组件都运行在给应用程序创建的默认进程中。它有与应用程序包相同的名称。<application>元素的process属性能够给其所有的组件设置一个不同的默认进程。但是每个组件都能够用它们自己的process属性来覆盖这个默认设置,从而允许把应用程序分离到不同的多个进程中。
如果这个属性值是用“:”开头的,那么在需要这个提供器的时候,系统就会给这个应用程序创建一个新的私有进程,并且对应的Activity也要运行在那个私有进程中。如果用小写字母开头,那么Activity则会运行在一个用这个属性值命名的全局进程中,它提供了对内容提供器的访问权限。这样就允许不同应用程序的组件能够共享这个进程,从而减少对系统资源的使用。
- android:readPermission
这个属性用于设置查询内容提供器的数据时,客户端所必须要有的权限。
- android:syncable
这个属性用于设定内容提供器控制下的数据是否要与服务器上的数据进行同步,如果设置为true,则要同步,否则不需要同步。
- android:writePermission
这个属性用于设置修改内容提供器的数据时,客户端所必须要有的权限。