Service是能够在后台执行长时间运行操作,并且不提供用户界面的应用程序组件。
服务可以分为两类:
- Started
- Bound
服务可以是以上一种,也可以是同时属于。重点在于是否实现一些回调方法。
onStartCommand()方法允许组件启动服务,onBind()方法允许组件绑定服务。
创建Started Service
Started Service是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。
- 继承IntentService类:因为多数服务不必同时处理多个请求,简化启动服务的实现。工作队列
- 继承Service类:服务处理多线程
创建Bound Service
实现绑定服务时,最重要的是定义onBind()回调方法返回的接口,共有3种方式:
- 继承Binder类:服务仅用于私有应用程序时。如果服务可以用于其他应用程序或者访问独立进程时,不能使用。
- 使用Messenger:接口跨进程工作。使用Messenger是执行IPC最简单方式,因为Messenger类将所有请求队列化到单独的线程。
- 使用AIDL:Android接口定义语言。
本文深入探讨了Android服务的两种类型:StartedService与BoundService,详细解释了它们的实现方式与关键回调方法,包括如何通过startService()方法启动StartedService,以及如何在BoundService中实现onBind()方法以供外部组件绑定。

被折叠的 条评论
为什么被折叠?



