Android开发的四大组件分别是:
  • 活动(activity),用于表现功能;
  • 服务(service),后台运行服务,不提供界面呈现;
  • 广播接受者(BroadcastReceive),勇于接收广播;
  • 内容提供者(Content Provider),支持多个应用中存储和读取数据,相当于数据库
一、本文讲的是服务(service)

Android中的四大组件之一,是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。它通常用作在后台处理耗时的逻辑,与Activity一样,它存在自己的生命周期,也需要在AndroidManifest.xml配置相关信息。

Service 有两种启动方式

1. startService (启动状态)

特点 :一旦服务开启跟调用者(开启者)就没有任何关系了。开启者退出了,开启者挂了,服务还在后台长期的运行,只有通过调用停止服务的方法才能停止服务,或者是整个程序被kill掉,那么服务也会随之kill。开启者不能调用服务里面的方法

2. bindService(绑定状态)

特点:bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。绑定者可以调用服务里面的方法。(说白了就和小程序一样,打开的时候使用,用完了就关闭拍屁股走人,一次性滴)注意:绑定服务不会调用onstart()或者onstartcommand()方法

生命周期方法说明:

  • onCreate() :
    首次创建服务时,系统将调用此方法。如果服务已在运行,则不会调用此方法,该方法只调用一次。
  • onStartCommand() :
    当另一个组件通过调用startService()请求启动服务时,系统将调用此方法。
  • onDestroy() :
    当服务不再使用且将被销毁时,系统将调用此方法。
  • onBind() :
    当另一个组件通过调用bindService()与服务绑定时,系统将调用此方法。
  • onUnbind() :
    当另一个组件通过调用unbindService()与服务解绑时,系统将调用此方法。
  • onRebind() :
    当旧的组件与服务解绑后,另一个新的组件与服务绑定,onUnbind()返回true时,系统将调用此方法。

3、生命周期调用

1. 启动Service服务

  • 单次:startService() —> onCreate() —> onStartCommand()
  • 多次:startService() —> onCreate() —> onStartCommand() —> onStartCommand()

2. 停止Service服务

  • stopService() —> onDestroy()

3. 绑定Service服务

  • bindService() —> onCreate() —> onBind()

4. 解绑Service服务

  • unbindService() —> onUnbind() —> onDestroy()

5. 启动绑定Service服务

  • startService() —> onCreate() —> onStartCommand() —> bindService() —> onBind()

6. 解绑停止Service服务

  • unbindService() —> onUnbind() —> stopService() —> onDestroy()

7. 解绑绑定Service服务

  • unbindService() —> onUnbind(ture) —> bindService() —> onRebind()

这里有篇参考文章

Android 四大组件 -- service相关推荐

  1. Android四大组件Service之AIDL详解

    Android四大组件Service之AIDL详解 前言 简介 基础知识 AIDL 服务端 定义AIDL文件规则 创建 .aidl 文件 清单注册 通过 IPC 传递对象 调用 IPC 方法 Andr ...

  2. Android四大组件-Service

    目录 启动方式 独立启动 使用场景 生命周期 绑定启动 使用场景 生命周期 特性 多次启动 版本适配 5.0(21) 8.0(26) 9.0(28) 12(31) 后台启动服务思路 广播启动 省电白名 ...

  3. android studio四大组件,Android 四大组件 Service 完全理解

    瞎忙到头晕... Service主要使用在后台比较耗时和运行时间较长的逻辑.但是在service中使用 Thread.currentThread().getId() 获取得到的却是1,也就是主线程.如 ...

  4. Android 四大组件 Service

    1. 适用范围 Service主要使用在后台比较耗时和运行时间较长的逻辑.但是在service中使用 Thread.currentThread().getId() 获取得到的却是1,也就是主线程.如果 ...

  5. android组件启动,Android四大组件Service之StartService启动

    对于Service两种方式在概述里已经介绍了,下面是学习是StartService的代码实例. service启动代码: package com.example.service01; import a ...

  6. Android四大组件——Service

    前言 Service可以理解为没有布局的Activity,可以进行音乐播放,后台下载等操作. 注意:Service是运行于主线程中的,不能进行耗时操作. 如何创建一个Service Service从创 ...

  7. android java service_[Java教程]Android四大组件之Service浅见

    [Java教程]Android四大组件之Service浅见 0 2014-04-04 18:00:28 Service 是Android四大组件之一,可以在不显示界面的情况下在后台运行.还有一个作用是 ...

  8. 下面不是android四大组件之一的是,Android四大组件之一 Service

    Service是长期在后台运行的没界面的Android四大组件之一,默认是运行在主线程中的,如果在service中执行耗时操作超过20秒没响应的话就会造成ANR,所以可以使用IntentService ...

  9. Android 四大组件 之 Service

    子曰:温故而知新,可以为师矣. <论语>-- 孔子 一. 简介 Android 四大组件之一,特点是无需界面,用于在后台处理耗时的操作或长期任务.甚至在程序退出的情况下,我们也可以让 Se ...

  10. Android 四大组件之——Service(一)

    一.什么是服务 服务,是Android四大组件之一, 属于 计算型组件.   长期后台运行的没有界面的组件 ,特点是无用户界面.在后台运行.生命周期长 二,什么时候使用服务? 天气预报:后台的连接服务 ...

最新文章

  1. 北京中天荣泰视觉检测 仿真
  2. python类装饰器详解-Python类装饰器实现方法详解
  3. 【MD5】加密/解密大小写问题
  4. FP、FN、TP、TN、精确率(Precision)、召回率(Recall)、准确率(Accuracy)评价指标详述
  5. 奥拉星插件flash下载手机版下载安装_终于等到你!安卓微信7.0.13内测版发布 支持夜间模式 附下载地址!...
  6. struts2 防止重复提交 与 进入等待画面
  7. php 随机输出html,PHP随机插入关键字到有HTML的内容该怎么实现
  8. C语言程序设计double,C语言中double类型数据占字节数为
  9. 如何为Docker项目创建持续集成持续部署 (CI-CD)解决方案
  10. mysql sql中的一些问题,Null与空字符
  11. 微信免费检测僵尸粉方法,微信免费检测僵尸粉工具
  12. mysql升级 增删改查询
  13. 使用点云数据创建数字高程模型(DEM)
  14. C语言约瑟夫报数出圈算法,详解约瑟夫环问题及其相关的C语言算法实现
  15. 频谱分析系列:1dB增益压缩点概述及测试
  16. Python爬虫编程思想(70): 项目实战--抓取京东商城手机销售排行榜
  17. 如何使用ROS控制真实UR5机器人
  18. 故宫珍宝馆完成二期改陈 珍贵红珊瑚盆景揭开面纱
  19. tch-rs指南 - Tensor的基本操作
  20. [BZOJ1339] [Baltic2008] Mafia / 黑手党

热门文章

  1. tcp协议可以提供什么服务器,什么是TCP协议?
  2. 用友NC任意文件上传漏洞复现
  3. 国产杂牌机java_国货精品 山寨 杂牌 HiPhone 诺卡 MTK联发科 mrp
  4. hscan扫描mysql代码_HScan 扫描器
  5. 【软考-软件设计师精华知识点笔记】考试大纲及题型介绍
  6. 2013年c语言课后作业答案,大一C语言课后习题答案.doc
  7. webview加载百度失败_独家|神秘SDK暗刷百度广告 植入数千款APP
  8. Oracle Grid 下载地址
  9. grid网格布局基础(一)
  10. Java不能做游戏?快来看看这个Java版超级玛丽吧。