Android开发:服务与设计哲学全解析
1. 服务介绍
在Android开发中,服务(Service)是一种在后台运行,执行长时间运行操作而不提供用户界面的组件。服务主要分为两种类型:启动服务(Started Services)和绑定服务(Bound Services)。
1.1 启动服务
启动服务具有无界生命周期,即使没有Activity可见时也可能保持活动状态。为避免因内存不足被系统终止,这种服务应作为前台服务启动,系统会赋予其较高优先级,并通过通知让用户知晓后台工作。
在Android 8.0(API级别26)之前,启动服务可以从空闲/后台应用调用并持续运行。但Android 8.0引入了新限制,仅允许前台应用、前台服务,以及在应用进入后台后的几分钟内、接收到高优先级Firebase云消息(FCM)、广播或执行通知中的待定意图时启动服务。
对于大多数用例,如果有替代方案,应避免使用服务。例如,作业调度器(Job Scheduler)是在应用后台运行时调度操作的最佳实践替代方案。
启动服务的创建步骤如下:
1. 创建一个继承自 Service
的类,实现 onBind
方法,对于启动服务,此方法可返回 null
,表示无调用者可绑定到该服务。示例代码如下:
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
publ