像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 8.0 (API级别26)开始,服务的后台运行受到限制,需在清单文件中声明`<uses-permission>`来允许后台执行。 6. **调试服务**: - 使用Logcat跟踪日志输出,检查服务生命周期方法的调用情况。 - ...
本篇文章将深入探讨`startService`类型的Android Service,通过一个简单的实例来展示其工作原理和使用方法。 `Service`分为两种主要类型:`Start Service`和`Bound Service`。`Start Service`主要用于执行非交互式...
2. 在AndroidManifest.xml中声明Service:确保在应用的清单文件中添加Service的声明。 ```xml <service android:name=".MyService" /> ``` 3. 客户端绑定Service:在需要绑定Service的Activity或Fragment中,使用`...
**Android--ZhihuDailyFluxRRD** 是一个基于Android平台的应用开发示例,它展示了如何使用现代的开发库,如Retrofit、RxJava和Dagger2来构建高效、可维护的移动应用。这个项目旨在帮助开发者了解这些工具的集成和...
在Android开发中,有时我们需要让应用程序中的某个服务(Service)在设备启动时自动运行,例如进行后台数据同步、监控某些变化等。为了实现这一需求,可以利用Android系统提供的`android.intent.action.BOOT_...
创建Service需要继承`android.app.Service`类,并在清单文件(`AndroidManifest.xml`)中声明该Service。开发者通常会重写`onStartCommand()`来处理服务启动时的命令,`onCreate()`用于初始化服务。 3. **启动...
Android有严格的权限模型,开发者需要在应用的清单文件中声明所需的权限,如访问联系人、发送短信等。用户在安装应用时会看到这些权限请求。 八、Android硬件接口 Android提供了一系列API,让开发者能够访问设备的...
在Android开发中,Intent是一种非常重要的组件,它用于在应用程序的不同组件之间传递消息,实现活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)以及内容提供者(ContentProvider)之间的交互。...
10. 沙盒环境:每个Android应用都运行在一个沙盒环境中,权限系统限制了应用能访问的资源和系统功能,以防止恶意行为。 综上所述,`Android权限清单`是开发者管理和控制应用权限的核心工具,确保应用在尊重用户隐私...
在Android应用开发中,我们通常会看到一个类似的文件结构,如`mynote-master`这样的命名,这表示它是一个Git仓库的主分支,包含了整个项目的源代码、资源文件和其他必要组件。要理解这个项目,我们需要关注以下几个...
在Android开发中,服务(Service)是四大组件之一,它是一种在后台运行且不与用户交互的组件。服务主要用于执行长时间运行的操作,如播放音乐、处理网络请求等。本教程将详细讲解如何在Android中创建服务,以及服务...
- **隐式启动(Implicit Start)**:通过Intent携带ACTION、CATEGORY、DATA等信息,无需知道Service的具体类名,只要Service在清单文件中声明了匹配的Intent过滤器,就可以被启动。这种方式多用于执行系统或第三方...
在Android应用开发中,`AndroidManifest.xml`文件是至关重要的,它是每个应用的基石,包含了应用的基本信息和权限设置。本文将深入解析`AndroidManifest.xml`文件中的各种权限,以便开发者更好地理解和管理应用的...
因此,如果应用包含一个卸载触发服务,可以在服务中监听到应用即将卸载的信号,例如通过监听包管理器(PackageManager)的事件,然后执行相应的逻辑,如删除数据库、清理缓存、发送卸载通知等。 在文件名 ...
因此,对Android感兴趣的开发人员都把Google在2008年发布Android这一举措作为移动技术发展史上的一个非常令人期待的重大事件。 由于Android构建在开源代码的框架之上,而且提供了强大的SDK库和开放的理念,所以它...
2. **配置AndroidManifest.xml**:在Android应用的清单文件中,你需要添加必要的权限声明,如`INTERNET`和`ACCESS_NETWORK_STATE`,以及Google Play服务的receiver和服务组件。 3. **接收器(BroadcastReceiver)**...
【Android代码-拇机的安卓app代码】是一个与Android应用开发相关的项目,主要涉及的是拇指机(MuJi)在Android平台上的应用程序源码。这个项目可能是为了展示拇指机App的功能实现、架构设计或者用于教学目的。从描述...
6. **AndroidManifest.xml**:每个Android应用都有一个清单文件,用来声明应用的组件、权限和其他元数据。 7. **多线程和异步处理**:Android应用通常需要处理UI更新和网络操作,因此理解线程和Handler、AsyncTask...
在Android开发中,项目结构是每个开发者都需要理解的基础部分,尤其当涉及到现代网络请求库Retrofit2和响应式编程库RX Java时。本篇将详细阐述Android项目的典型结构以及Retrofit2和RX Java如何融入其中。 一、...