Android(安卓)Service---在清单中声明一个服务
16lz
2022-06-06
像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
更多相关文章
- andorid 如何构建autofill service和AutofillHints和setImportan
- Android文本输入框EditText属性和方法说明
- Android开机log分析
- Android源码--开机启动流程学习
- TextView中ellipsize属性
- android:name 的秘密
- Android(安卓)Layout XML属性
- Android利用Jpush实现异地登陆下线
- Android(安卓)属性动画(Property Animation) 完全解析 (上)