Android 四大组件——Service 生命周期

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

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

一. 生命周期及常用的方法
下面是官方给出的Service生命周期图:
Android 四大组件——Service 生命周期_第1张图片
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
    Android 四大组件——Service 生命周期_第2张图片

  2. stopService
    作用:关闭服务
    自动调用方法:onDestroy
    Android 四大组件——Service 生命周期_第3张图片

  3. bingService
    作用:绑定服务
    自动调用方法:onCreate()、onBind()
    Android 四大组件——Service 生命周期_第4张图片

  4. unBindService
    作用:解绑Service
    自动调用方法:onUnbind()、onDestroy()
    Android 四大组件——Service 生命周期_第5张图片

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

应用场景 生命周期
只使用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也停止了

你可能感兴趣的:(Android,面试)