Service概念
Service就是服务,是一种用户看不见的服务机制,通常可以被理解为一个没有布局的Activity。
典型例子:后台播放的音乐、后台下载等
注意:Service不同于子线程,Service一定是运行在主线程中的。
Service类型
1. 按启动类型分:
① 绑定式(bindService)
- 服务与启动者(Activity)的生命周期绑定在了一起,如果启动者销毁了,则服务也会被销毁。
- 启动者可以调用Service中的方法。
② 非绑定式(startService)
- 服务与启动者(Activity)的生命周期无关。
- 启动者无法调用Service中的方法。
③ 前台Service
- 在本篇文章末尾详细介绍
Service生命周期
1. 绑定式Service的生命周期(图片来源:37.3-Android中Service的生命周期_哔哩哔哩_bilibili)
2. 非绑定式Service的生命周期(图片来源:37.3-Android中Service的生命周期_哔哩哔哩_bilibili)
前台Service
上图就展示了一个前台Service的应用场景和表现形式。
特点:
- 优先级比其他两个运行在后台的Service要高,通常不会被“杀后台”。
- 前台服务必须显示通知。
- 通知不可去除,除非服务停止或被前台去除。