首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Carson带你学Android:Service史上最全面解析

Carson带你学Android:Service史上最全面解析

作者头像
Carson.Ho
发布2022-03-24 18:44:45
发布2022-03-24 18:44:45
46100
代码可运行
举报
文章被收录于专栏:Android知识分享Android知识分享
运行总次数:0
代码可运行

前言

  • Service作为 Android四大组件之一,应用非常广泛
  • 本文将提供一份全面 & 简洁的 Service知识讲解攻略,希望你们会喜欢

目录

1. 简介

  • 定义:服务,是Android四大组件之一, 属于 计算型组件
  • 作用:提供 需在后台长期运行的服务

如:复杂计算、音乐播放、下载等

  • 特点:无用户界面、在后台运行、生命周期长

2. 生命周期

具体请文章:Android:Service生命周期最全面解析

3. 类型

Service可按照运行地点、运行类型 & 功能进行分类,具体如下:

3.1 具体分类

3.2 详细介绍

4. 使用讲解

  • 下面,我将介绍每种Service的具体使用
  • 具体请看文章:Android:(本地、可通信的、前台、远程)Service使用全面介绍

5. 其他思考

5.1 Service 与 Thread的区别

  • 结论:ServiceThread 无任何关系
  • 之所以有不少人会把它们联系起来,主要因为Service的后台概念

后台:后台任务运行完全不依赖UI,即使Activity被销毁 / 程序被关闭,只要进程还在,后台任务就可继续运行

  • 关于二者的异同,具体如下图:
  • 注:一般会将 ServiceThread联合着用,即在Service中再创建一个子线程(工作线程)去处理耗时操作逻辑,如下代码:
代码语言:javascript
代码运行次数:0
运行
复制
@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的所有知识(含:基础认识、生命周期、使用 & 应用场景)

Carson带你学Android 文章系列:

Carson带你学Android:页面活动-Activity

Carson带你学Android:广播-BroadcastReceiver

Carson带你学Android:服务-Service

Carson带你学Android:内存承载器-ContentProvider

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 目录
  • 1. 简介
  • 2. 生命周期
  • 3. 类型
    • 3.1 具体分类
    • 3.2 详细介绍
  • 4. 使用讲解
  • 5. 其他思考
    • 5.1 Service 与 Thread的区别
    • 5.2 Service和IntentService的区别
  • 6.总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档