前面我们介绍了Activity的一些基本知识。今天再来学习下Android中另外一个十分重要的知识点Service。
Service通常称为后台服务,后台区别与前台,不依赖与用户UI而存在。所以Service的应用场景应具备以下条件:

  1. 不依赖与可见UI(并不绝对,比如Notification和Service结合使用)
  2. 长时间运行

一. 生命周期及常用的方法
下面是官方给出的Service生命周期图:

Service的启动方式不同,生命周期也不同。从上图可以看出:

  1. startService方式启动: onCreate() ——> onStartCommand() ——> onDestroy()
  2. bindService方式启动: onCreate() ——> onBind() ——> onUnbind() ——> onDestroy()

在Service中,常用的方法:

4个需要主动调用的方法

主动调用方法 作用
startService() 启动服务
stopService 关闭服务
bindService 绑定服务
unBindService 解绑服务

5个被动调用的方法

自动调用方法 作用
onCreate 创建服务
onStartCommand() 开始服务
onDestroy() 销毁服务
onBind 绑定服务
onUnbind 解绑服务

二. 生命周期方法具体的介绍

  1. startService
    作用:启动服务
    自动调用方法:onCreate、onStartCommand

  2. stopService
    作用:关闭服务
    自动调用方法:onDestroy

  3. bingService
    作用:绑定服务
    自动调用方法:onCreate()、onBind()

  4. unBindService
    作用:解绑Service
    自动调用方法:onUnbind()、onDestroy()

三. 常见的应用场景对应的生命周期

应用场景 生命周期
只使用startServcie [代码调用startService] ---->onCreate[创建] ——> onStartCommand[开始] ----->[Service运行中]---->[手动调用StopService]---->onDestroy[销毁]---->[Service停止]
只使用bindService [代码调用bindService]---->onCreate[创建] ——> onBind[绑定]---->[Service绑定开始运行]---->[外界请求解绑unBindService]---->onUnbind[解除绑定]——>onDestroy[销毁]---->[Service停止]
先startService然后bindService [代码调用startService]---->onCreate[创建]——>onStartCommand[开始]---->[Servcie运行中]---->[外界请求绑定Service]---->onBind[绑定]---->[Service绑定]---->[Service绑定运行中]---->[外界请求解绑unBindService]---->onUnbind[解除绑定]---->[外界请求停止StopService]---->onDestroy[销毁i]—>[服务停止]
注意事项 startService和stopService只能开启和停止Service,无法和Service进行其他交互;bindService和unBindService除了绑定和解除外还可以与Service进行交互;startService开启后,调用者退出后,Service仍在运行;BindService开启后,调用者退出后,Service也停止了

更多相关文章

  1. Android下结束进程的方法
  2. Android:你不知道的 WebView 使用漏洞
  3. Android开发_精准排布控件位置
  4. Android(安卓)解决多个Fragment切换时不断实例化
  5. Android(安卓)XML解析技术-自eoe
  6. 浅谈Android中Activity的生命周期
  7. http 请求时间
  8. android Toast显示消息的几种方法
  9. Android(安卓)MVVM框架 DataBinding

随机推荐

  1. Android-section-list分组列表
  2. Android(安卓)Studio启动时报错 Emulator
  3. Android关于在Canvas类里的绘制线程问题
  4. Ubuntu 安装 Android(安卓)Studio 全过程
  5. Android存储登陆信息
  6. Android中模拟HOME键功能
  7. ViewBinding与RecycleView(一)
  8. Android移动应用知识点总汇①
  9. RecyclerView嵌套ScrollView,滑动卡顿解
  10. Java/Android(安卓)实现简单的HTTP服务器