基本概念
android 四大组件之一:Service;
- Service 是可在后台长时间运行但不提供界面的应用组件;
- Service 依赖于创建 Service 的应用程序进程;可以在后台运行,但其自身并不会开启新线程;
三种不同的服务类型:
- 前台,执行用户能注意的操作,如:播放音乐,前台服务必须显示通知;
- 后台,执行用户不会注意到的操作;
在 API 26 及以后,系统会对后台服务施加限制,应改为使用计划作业; - 绑定,应用组件使用
bindService
,多个组件可以绑定到一个服务;
一个 Service 既可以是启动服务也可以是绑定服务:
- 启动服务实现
onStartCommand
方法 - 绑定服务实现
onBind
方法
创建服务
两个类:
- Service,所有服务的基类,默认使用应用的主线程;
- IntentService,使用工作线程来处理请求;
// 实现 Service 的子类,重写一些回调方法
onCreate // 首次创建服务时调用,在 onStartCommand 和 onBind 之前
onStartCommand // 组件通过 startService 方法启动服务
onBind // 组件与服务进行绑定, bindService
onDestroy // 不再使用服务且准备销毁
// 继承 IntentService
1、提供 OnBind 的默认实现
2、提供 onStartCommand 的默认实现
3、会创建默认的工作线程,且处理完后会停止服务,不必调用 stopSelf
4、需要实现 onHandleIntent
创建启动服务
- 继承 Service 或者 IntentService 类;
- 实现 onStartCommand 方法 或者 onHandleInt