像Activity(和其他的组件)一样,所有的服务都必须在应用程序的清单文件中声明。

要声明服务就要给<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.csdn.net/FireOfStar

更多相关文章

  1. andorid 如何构建autofill service和AutofillHints和setImportan
  2. Android文本输入框EditText属性和方法说明
  3. Android开机log分析
  4. Android源码--开机启动流程学习
  5. TextView中ellipsize属性
  6. android:name 的秘密
  7. Android(安卓)Layout XML属性
  8. Android利用Jpush实现异地登陆下线
  9. Android(安卓)属性动画(Property Animation) 完全解析 (上)

随机推荐

  1. Android前后台传数据乱码,xml
  2. Android(安卓)最新所有框架
  3. Android坐标系统常用方法属性总结
  4. Android/Swing中并发分析
  5. Android(安卓)bugs——RecyclerView scro
  6. [置顶] Android(安卓)自定义ViewGroup实
  7. 007:快图产品体验报告-Android【猎豹】
  8. Android实现聊天机器人之火影忍者
  9. Android(安卓)Studio - 第四十三期 Recyc
  10. Android实时获取音量(单位:分贝)