Android Manifest之<service>元素中文注释

语法

    <service android:enabled=["true" | "false"]

         android:exported=["true" |"false"]

         android:icon="drawable resource"

         android:isolatedProcess=["true" | "false"]

         android:label="string resource"

         android:name="string"

         android:permission="string"

         android:process="string">

        . . .

    </service>

父元素

    <application>

子元素

    <intent-filter>

    <meta-data>

描述

    声明一个作为应用组件的service(Service的子类)。和activities不同的是,services缺乏可视化的用户接口。它们用来实现长期运行的后台操作或由其它应用调用的富通信API。

    所有的services都必须在manifest文件中通过<service>元素来表示。没有在manifest中声明的将对系统不可见并且绝不会运行。

属性

android:enabled

   是否这个service能被系统实例化-如果能则为true,否则为false。默认为true。

    <application>元素有它自身的能应用到所有应用组件的enabled属性,包括services。要是这个service要enabled,那么这个<application>和<service>属性都必须为true(它们都是默认值)。如果有一个为false,这个服务就会disabled;它就不会被实例化。

android:exported

    是否其它应用组件能调用这个service或同它交互-如果能则为true,否则为false。当值为false时,只有同一个应用的组件或有相同用户ID的应用能启动这个服务或绑定它。

    默认值依赖于服务是否包含intent filters。过滤器的缺失意味着它只能通过指定它准确类名来调用它。这就意味着这个服务只能在应用内部被使用(因为其它应用不知道类名)。因此,在这种情况下,默认值是false。另一方面,至少有一个过滤器意味着这个服务可以在外部被使用,因此,默认值为true。

    这个属性并非是限制这个服务暴漏给其它服务的唯一途径。你也能通过权限来限制跟服务交互的外部实体(参见permisson属性)。

android:icon

    服务呈现的图标。这个属性必须被设置为包含图片的drawable资源的引用。如果没有设置,那么这个application的图标将代替它(参见<application>元素的icon属性)。

    对所有的intent filters来说,这个服务的图标无论是自身设置的还是通过<application>设置的,都是它们的默认图标(参见<intent-filter>元素的icon属性)。

android:isolatedProcess

    如果设置为true,这个服务将运行在专门的进程中,这个进程从系统的剩余部分独立出来,它自身没有权限。同它唯一的通信方式就是通过这个Service API(binding或starting)。

android:label

    这个服务给用户显示的名称。如果这个属性没有设置,将使用<application>的label属性代替(参见<appliation>元素的label属性)。

    这个服务的label,无论是通过自身设置的,还是通过application设置的,对于这个service的intent filters来说都是默认值(参见<intent-filter>元素的label属性)。

    这个label应当设置为string资源的引用,以便在用户接口中能同其它string资源一样本地化。然而,在开发应用时为了方便起见,它也能被设置为raw串。

android:name

   实现这个service的Service子类名称。这应当是完整格式的类名(例如,“com.example.project.RoomService”)。然而,作为一个简写,如果名称的第一个字母是点(例如,“.RoomService”),  它会被添加到在<manifest>元素中声明的包名后面。

   一旦你发布了你的应用,你就不要修改这个名字(除非你设置了android:exported=false)。

   没有默认值,这个名称必须被指定。

android:permission

    为了启动这个service或绑定到它一个实体必须要有的权限的名称。如果startService(),bindService()或stopService()的调用者还没有获取这个授权,那么这些方法就不会工作,而且这个intent对象也不会传递到service。

    如果这个属性没有设置,由<application>元素的permission属性设置的权限就会应用到这个service。如果都没有设置,那么这个服务就不再受权限保护。

android:process

    服务将要运行的进程名称。一般来讲,应用的所有组件都运行在应用创建的默认进程中。就像应用的包名一样。<application>元素的process属性能对所有组件设置不同的默认值。然而,组件能通过它自身的process属性重写默认值,从而允许你扩展你的应用跨越多个进程。

    如果分配到这个属性的名称以冒号(:)开始,那么当需要它的时候,一个新的、对这个应用私有的进程就被创建,同时这个服务就在哪个进程运行。如果进程的名字以小写字母开始,那么这个服务将运行在全局进程中。这就允许在不同应用中的组件共享这个进程,降低资源的消耗。

出处

    API Level 1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值