<receiver>
句法
<receiver android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" > . . . </receiver>包含于
<application>
可以包含
<intent-filter>
<meta-data>
描述:
声明一个广播接收机(一个BroadcastReceiver子类)作为应用程序的组成部分之一。广播接收机使应用程序能够接收由该系统或其他应用程序的广播,即使应用程序的其它部件没有运行意图。
有两种方法可以使系统已知的广播接收器:一个是与此元素清单文件声明。另一种是在代码动态创建接收器和与Context.registerReceiver()方法注册。有关详情,请上动态创建接收器的BroadcastReceiver类的描述。
属性:
android:enabled
“真”,如果它可以是,和“假”,如果不 - 是否该广播接收机可以通过该系统进行实例化。缺省值是“真”。
在<application>元素有一个适用于所有应用程序组件,包括广播接收器自身的启用属性。在<应用>和<接收机>属性必须同时启用“真”的广播接收机。如果任何一个为“假”,它被禁用;它不能被实例化。
android:exported
不管是不是广播接收器可以从它的应用程序之外的来源接收消息 - “真”,如果它可以,“false”表示不行。如果“假”,广播接收机可接收的唯一消息是那些由相同的应用程序或应用程序具有相同的用户ID的部件发送。
默认值取决于广播接收器是否包含意图过滤器。由于没有任何过滤器的装置,它只能通过指定其确切类名意图对象上调用。这意味着,接收器仅用于应用程序内部使用(因为更为通常不会知道类名)。因此,在这种情况下,默认值是“假”。另一方面,至少一个过滤器的存在意味着该广播接收机被用来接收意图由系统或其它应用程序播放,那么该默认值是“真”。
该属性是不限制的广播接收器的外部暴露的唯一途径。还可以使用权限来限制可以发送它的消息的外部实体(见许可属性)。
android:icon
代表广播接收机的图标。此属性必须设置为包含图像定义的可绘制资源的引用。如果没有设置,对作为一个整体来代替应用程序指定的图标(请参阅<application>元素的图标属性)。
广播接收器图标 - 无论是在这里还是在<application>元素设置 - 也是对所有接收器的意图过滤器的默认图标(请参阅<意向filter>元素的图标属性)。
android:label
用于广播接收机的用户可读的标签。如果没有设置该属性,作为一个整体来代替应用程序的标签集(请参阅<application>元素的label属性)。
广播接收器的标签 - 无论是在这里还是在<application>元素设置 - 也是对所有接收器的意图过滤器默认标签(请参阅<意向filter>元素的label属性)。
标签应设置为一个字符串资源的引用,以便它可以被本地化一样在用户界面的其他串。但是,作为一种方便,而你开发的应用程序,它也可以被设置为一个原始字符串
android:name
实现该广播接收机,广播接收器的一个子类的类的名字。这应该是一个完全合格的类名(例如,“com.example.project.Report接收器”)。但是,作为一个缩写,如果名字的第一个字符是一个句号(例如,“已接收报告”),它是附加在<清单>元素中指定的包名。
一旦你发布你的应用程序时,你不应该改变这个名字(除非你设置的android:出口=“假”)。
没有默认值。必须指定名称。
android:permission
该广播必须具有将消息发送到广播接收机的许可的名称。如果没有设置该属性,由<application>元素的许可属性设置权限适用于广播接收机。如果没有属性设置,接收机不被许可的保护。
有关权限的详细信息,请参阅介绍权限部分和一个单独的文件,安全和权限。
android:process
在该广播接收机应该运行的进程的名称。通常情况下,一个应用程序的所有组件在应用程序创建的默认进程中运行。它具有相同的名称作为应用程序包。在<application>元素的process属性可以为所有的组件不同的默认。但每个组件都可以有自己的进程属性覆盖默认设置,让您在多个流程传播你的应用程序。
如果分配给该属性名称以冒号(':')开始,一个新的进程,私有的应用程序,在需要时创建和广播接收器在进程中运行。如果进程名称以小写字母开头,接收器将在该名字的全局进程中运行,只要它有权这样做。这使得在不同应用程序的组件共享一个过程,减少资源的使用。
<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>
描述:
声明为应用程序的组件之一的服务(服务子类)。不同的活动,服务缺乏一个可视化的用户界面。他们用来实现长时间运行的后台操作或丰富的通信API,可以被其他应用程序调用。
所有服务必须由<服务>在manifest文件中的元素来表示。任何未声明的存在将不会被系统中可以看出,将永远不会被执行。
属性:
android:enabled
是否该服务可以由系统实例化 - “true”表示它可以是,和“假”,如果没有。缺省值是“真”。
在<application>元素有一个适用于所有应用程序组件,包括服务自身的启用属性。在<应用程序>和<服务>属性必须都是“真”(因为它们都是由默认值)启用该服务。如果任何一个为“假”,该服务被禁用;它不能被实例化。
android:exported
不管是不是其他应用程序的组件可以调用该服务或者与其进行交互 - “真”如果他们能做到,而“假”如果不是。当该值是“假”,相同的应用程序或应用程序具有相同的用户ID的唯一组件可以启动服务或绑定到它。
默认值取决于服务是否包含意图过滤器。由于没有任何过滤器的装置,它可以通过指定其确切类名称只能被调用。这意味着,该服务仅用于应用程序内部使用(因为其他人不知道的类名称)。因此,在这种情况下,默认值是“假”。另一方面,至少一个过滤器的存在意味着该服务是用于外部使用,因此缺省值是“真”。
此属性不限制到其他应用程序的服务的曝光的唯一途径。还可以使用权限来限制可以与服务交互的外部实体(见许可属性)。
android:icon
代表服务的图标。此属性必须设置为包含图像定义的可绘制资源的引用。如果没有设置,对作为一个整体来代替应用程序指定的图标(请参阅<application>元素的图标属性)。
该服务的图标 - 无论是在这里还是在<application>元素设置 - 也是所有服务的意图过滤器的默认图标(请参阅<意向filter>元素的图标属性)。
android:isolatedProcess
如果设置为true,该服务将在一个从系统的其余部分隔离,并没有自己的权限特殊工艺运行。它唯一的通信是通过服务API(绑定和开始)。
android:label
一种用于可显示给用户的服务名称。如果没有设置该属性,作为一个整体来代替应用程序的标签集(请参阅<application>元素的label属性)。
该服务的标签 - 无论是在这里还是在<application>元素设置 - 也是所有服务的意图过滤器默认标签(请参阅<意向filter>元素的label属性)。
标签应设置为一个字符串资源的引用,以便它可以被本地化一样在用户界面的其他串。但是,作为一种方便,而你开发的应用程序,它也可以被设置为一个原始字符串。
android:name
实现服务的服务子类的名称。这应该是一个完全合格的类名(例如,“com.example.project.Room服务”)。然而,作为一个速记,如果名称的第一个字符是一个周期(例如,“.Room服务”),它被附加到在<清单>元件中指定的包名。
一旦你发布你的应用程序时,你不应该改变这个名字(除非你设置的android:出口=“假”)。
没有默认值。必须指定名称。
android:permission
一个实体必须以推出该服务或绑定到它的权限的名称。如果startService(),bindService()的调用者,或停止服务(),没有被授予这个权限,该方法将无法正常工作,并意图对象将不会被传递到服务。
如果没有设置该属性,由<application>元素的许可属性设置的权限适用于该服务。如果没有属性设置,该服务不被许可的保护。
有关权限的详细信息,请参阅介绍权限部分和一个单独的文件,安全和权限。
android:process
的方法,其中该服务是要运行的名称。通常情况下,一个应用程序的所有组件在应用程序创建的默认进程中运行。它具有相同的名称作为应用程序包。在<application>元素的process属性可以为所有的组件不同的默认。但组件可以用它自己的进程属性覆盖默认设置,让您在多个流程传播你的应用程序。
(“:”)如果分配给该属性名称以冒号开始,一个新的进程,私有的应用程序,在需要时创建和服务,在这一过程中运行。如果进程名称以小写字母开头,该服务将在该名字的全局进程中运行,只要它有权这样做。这使得在不同应用程序的组件共享一个过程,减少资源的使用。