要声明服务就要给<application>元素添加一个<service>子元素,例如:
<manifest ... >
...
<application ... >
<service android:name=".ExampleService" />
...
</application>
</manifest>
在<service>元素中还包括了一些其他的属性定义,如启动服务所需的许可和服务应该运行在哪个进程中。android:name属性是唯一必须的属性---它指定了这个服务的类名。一旦你发布了应用,就不应该改变这个名字,因为如果修改了,就会中断那些使用Intent引用这个服务的功能。
关于在清单文件中声明服务的更多信息,请参考<service>元素的说明。
就像Activity一样,一个服务也能够定义Intent过滤器,允许其他组件使用隐含的Intent来调用这个服务。通过声明Intent过滤器,安装在用户设备上的任何应用程序组件都能启动你的服务(如果你的服务声明了一个跟另一个应用程序传递给startService()方法的Intent匹配的Intent过滤器)。
如果你计划你的服务只在局部使用(其它的应用程序不使用它),那么你就不需要提供任何Intent过滤器(并且也不应该提供)。没有任何Intent过滤器,你就必须使用一个确切的命名服务类的Intent来启动这个服务。关于启动服务的更多信息会在“启动服务”一节中讨论。
另外,如果你在<service>元素中包含了android:exported属性,并且属性值设置为“false”,那么就能确保这个服务是你的应用的私有服务了。即使这个服务支持Intent过滤器,这也是有效的。
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.youkuaiyun.com/FireOfStar