Android Service---在清单中声明一个服务
16lz
2021-01-23
像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
更多相关文章
- Android 属性动画(Property Animation) 完全解析 (上)
- EditText属性详解
- android自定义视图属性(atts.xml,TypedArray)学习
- Android——属性动画(Property Animation)