版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
前言
Service
作为Android
四大组件之一,应用非常广泛- 本文将提供一份全面 & 简洁的
Service
知识讲解攻略,希望你们会喜欢
目录
1. 简介
- 定义:服务,是
Android
四大组件之一, 属于 计算型组件 - 作用:提供 需在后台长期运行的服务
如:复杂计算、音乐播放、下载等
- 特点:无用户界面、在后台运行、生命周期长
2. 生命周期
具体请文章:Android:Service生命周期最全面解析
3. 类型
Service
可按照运行地点、运行类型 & 功能进行分类,具体如下:
3.1 具体分类
3.2 详细介绍
4. 使用讲解
- 下面,我将介绍每种
Service
的具体使用 - 具体请看文章:Android:(本地、可通信的、前台、远程)Service使用全面介绍
5. 其他思考
5.1 Service 与 Thread的区别
- 结论:
Service
与Thread
无任何关系 - 之所以有不少人会把它们联系起来,主要因为
Service
的后台概念
后台:后台任务运行完全不依赖
UI
,即使Activity被销毁 / 程序被关闭,只要进程还在,后台任务就可继续运行
- 关于二者的异同,具体如下图:
- 注:一般会将
Service
和Thread
联合着用,即在Service
中再创建一个子线程(工作线程)去处理耗时操作逻辑,如下代码:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//新建工作线程
new Thread(new Runnable() {
@Override
public void run() {
// 开始执行后台任务
}
}).start();
return super.onStartCommand(intent, flags, startId);
}
class MyBinder extends Binder {
public void service_connect_Activity() {
//新建工作线程
new Thread(new Runnable() {
@Override
public void run() {
// 执行具体的下载任务
}
}).start();
}
}
5.2 Service和IntentService的区别
具体请看文章:Android多线程:IntentService用法&源码
6.总结
- 本文 全面解析了
Service
的所有知识(含:基础认识、生命周期、使用 & 应用场景) - 若还想了解关于
Service
的其他知识,请浏览文章:
Android四大组件:Service史上最全面解析
Android:Service生命周期最全面解析
Android:(本地、可通信的、前台、远程)Service使用全面介绍
Android:远程服务Service(含AIDL & IPC讲解)
Android多线程全面解析:IntentService用法&源码