前言

  • Service作为Android四大组件之一,应用非常广泛
  • 本文将介绍对Service进行全面介绍(基础认识、生命周期、使用和应用场景)

目录

1. 基础知识

  • 定义:服务,属于Android中的计算型组件
  • 作用:提供需要在后台长期运行的服务(如复杂计算、下载等等)
  • 特点:长生命周期的、没有用户界面、在后台运行

2. 生命周期方法详解

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

3. Service分类

3.1 Service的类型

3.2 详细介绍

4. Service的使用解析

由上述可知,服务Service总共分为:

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

5. 使用场景

  • 通过上述描述,你应该对Service类型及其使用非常了解;
  • 那么,我们该什么时候用哪种类型的Service呢?
  • 各种Service的使用场景请看下图:

6. 其他思考

6.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();      }  }  

6.2 Service和IntentService的区别

具体请看我写的文章:Android多线程全面解析:IntentService用法&源码

7.总结

  • 本文对Service的所有知识进行了全面解析(基础认识、生命周期、使用和应用场景)
  • 如果你还想了解关于Service的其他知识,请浏览以下文章:

    Android四大组件:Service史上最全面解析
    Android:Service生命周期最全面解析
    Android:(本地、可通信的、前台、远程)Service使用全面介绍
    Android:远程服务Service(含AIDL & IPC讲解)
    Android多线程全面解析:IntentService用法&源码

  • 接下来会介绍继续介绍Android开发中的相关知识,有兴趣可以继续关注Carson_Ho的安卓开发笔记

请点赞!因为你们的赞同/鼓励是我写作的最大动力!

欢迎关注Carson_Ho的简书!

不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

更多相关文章

  1. 如何在后台运行Linux命令?
  2. Android架构组件(一):Lifecycle
  3. Android桌面小部件AppWidget(2)
  4. Android(安卓)--- 循检获取服务器信息
  5. Android中同步与异步的问题
  6. Android异步消息机制-深入理解Handler、Looper和MessageQueue之
  7. Android(安卓)O(8.0)后台service限制
  8. Activity 的介绍和使用(一)
  9. Android(安卓)Looper和Handler分析 .

随机推荐

  1. Android/iOS版Cortana 12.10「芝士早报」
  2. Android开发(46) 使用 textview实现文字
  3. Android的消息处理机制
  4. android底层开发!双非渣本Android四年磨一
  5. Android各种访问权限Permission详解
  6. 01、泛型是什么?——《Android打怪升级之
  7. android Button 点击背景与文字颜色变化
  8. Android中使用ORMLite入门示例学习
  9. Android(安卓)中的网络操作(HttpURLConnec
  10. Google是如何逐步牢牢控制开源系统Androi