Android应用组件之服务(Service)---使用清单文件声明服务
2017-09-17 00:00
519 查看
摘要: 启用Service之前的准备工作
如同 Activity(以及其他组件)一样,您必须在应用的清单文件中声明所有服务。要声明服务,请添加 <service> 元素作为 <application> 元素的子元素。例如:
您还可将其他属性包括在 <service> 元素中,以定义一些特性,如启动服务及其运行所在进程所需的权限。android:name 属性是唯一必需的属性,用于指定服务的类名。应用一旦发布,即不应更改此类名,如若不然,可能会存在因依赖显式 Intent 启动或绑定服务而破坏代码的风险。
为了确保应用的安全性,请始终使用显式 Intent 启动或绑定 Service,且不要为服务声明 Intent 过滤器。 启动哪个服务存在一定的不确定性,而如果对这种不确定性的考量非常有必要,则可为服务提供 Intent 过滤器并从 Intent 中排除相应的组件名称,但随后必须使用 setPackage() 方法设置 Intent 的软件包,这样可以充分消除目标服务的不确定性。
此外,还可以通过添加 android:exported 属性并将其设置为 "false",确保服务仅适用于您的应用。这可以有效阻止其他应用启动您的服务,即便在使用显式 Intent 时也如此。
如同 Activity(以及其他组件)一样,您必须在应用的清单文件中声明所有服务。要声明服务,请添加 <service> 元素作为 <application> 元素的子元素。例如:
<manifest ... > ... <application ... > <service android:name=".ExampleService" /> ... </application> </manifest>
您还可将其他属性包括在 <service> 元素中,以定义一些特性,如启动服务及其运行所在进程所需的权限。android:name 属性是唯一必需的属性,用于指定服务的类名。应用一旦发布,即不应更改此类名,如若不然,可能会存在因依赖显式 Intent 启动或绑定服务而破坏代码的风险。
为了确保应用的安全性,请始终使用显式 Intent 启动或绑定 Service,且不要为服务声明 Intent 过滤器。 启动哪个服务存在一定的不确定性,而如果对这种不确定性的考量非常有必要,则可为服务提供 Intent 过滤器并从 Intent 中排除相应的组件名称,但随后必须使用 setPackage() 方法设置 Intent 的软件包,这样可以充分消除目标服务的不确定性。
此外,还可以通过添加 android:exported 属性并将其设置为 "false",确保服务仅适用于您的应用。这可以有效阻止其他应用启动您的服务,即便在使用显式 Intent 时也如此。
相关文章推荐
- Android UsageStatsService(应用使用统计服务)的学习与调研
- Android四大组件应用系列——使用BroadcastReceiver和Service实现倒计时
- Android应用组件之服务(Service)---概述及基础
- Android Service---在清单中声明一个服务
- Android Service---在清单中声明一个服务
- android service探究(附:使用服务功能下载文件)
- Android应用组件之服务(Service)---创建启动服务1
- android应用面试宝典(下);用自定义组件控制循环组件使用bug还添加标志显示答案标志位;通过包名读取配置文件AndroidManifest.xml
- Android四大组件应用系列5——使用AIDL实现跨进程调用Service
- Android四大组件之服务-Service 原理和应用开发详解
- 使用IntentService给自己的Android应用写一个文件下载器。
- Android 网络应用重点———使用HttpGet 下载apk文件并安装
- Android 4大应用程序组件 之服务 (Service)
- 跟我学Android应用开发 之 Android中资源文件的使用
- Android 应用五大核心块 --- Service后台服务
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- Android重要组件之一 Service 服务讲解学习(一)
- Android重要组件之一 Service 服务讲解学习(一)
- 玩转Android---组件篇---Service(服务)
- 01 Android应用的构成 四大组件 Activity, Intent Receiver , Service , Content Provider