首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于Android的Service知识点,你知道吗?

关于Android的Service知识点,你知道吗?

作者头像
达达前端
发布于 2019-07-03 04:24:29
发布于 2019-07-03 04:24:29
4390
举报
文章被收录于专栏:达达前端达达前端

标题图

目录

学习Service相关知识点:

  1. 概述;
  2. Service生命周期;
  3. Service的基本用法;
  4. 服务。
  • 问:达叔,今日工作累吗?
  • 答:累啊,那么问你,你知道Android中的 Service(服务)吗?~
  • 问:哥,这么干的吗?
  • 答:呵呵,是的,~

概述:

在Android中Service是一个在后台执行长时间运行操作,而不需要和用户交互的应用程序组件。主要是用来后台处理网络事务,播放音乐,执行文件操作和content provider进行交互等。

  • 答:简要地说,Service的运行不依赖任何用户界面,是一直保持在后台运行的。 如果当某个应用程序被关闭时,所有依赖于该应用的服务也就会停止了~
  • 问:哦~

对于,Service服务的分两种类:

一:Started Service,二:Bound Service。(英文理解:开启服务,绑定服务)。这两种服务各有各的特色。不过在理解之前,先看看它们的生命周期情况(图片来源于官方):

图片

可以看出两种启动方式区别:

Call to startService -> onCreate() -> onStartCommand() -> Service running -> onDestroy()

Call to bindService() -> onCreate() -> onBind() -> onUnbind() -> onDestroy()

从中可以看出:

一:使用startService()方法启动服务,调用onStartCommand()方法启动Service,启动Service的组件与Service没有联系,所以关闭组件,后台的Service也在运行中。

二:使用bindService()方法绑定来启动服务,调用onBind()方法来启动,将启动Service的组件和Service绑定在一起,关闭组件则Service会停止。

  • 问:那有什么要注意的吗?
  • 答:其实这两种方法并不冲突,使用startService()启动Service后,可以再使用bindService()方法进行绑定 到时,你在调用stopService()或自身stopSelf()方法和unBindService()方法就行,注重创建与销毁,才能更好理解~

Service的基本用法:

创建一个Service类,重写 onCreate(),onStartCommand(),oonDestroy(),这三种通常使用的方法。

定义一个MyService的类,代码如下:

图片

补充说明:

Service(服务)默认是执行主线程,不是默认运行在子线程,和进程中。如果要进行耗时操作,那么就要在开启子线程操作和使用异步消息处理机制。

不然会出现主线程被(ANR)的情况,ANR为应用无反应。

图片

在创建Service时,系统会自动在配置文件对MyService进行注册:

图片

可利用Intent可以启动和停止Service:

图片

  • 问:对于Service内容可以回顾一下吗?
  • 答:额,一:对于Started Service,当一个组件调用startService()方法请求服务时,系统会调用它的生命周期方法,启动后,会在后台无限期运行下去,直到完成工作调用stopSelf()或stopService()方法来终止服务的~
  • 问:嗯,好的~
  • 答:额,二:对于Bound Service的启动,当其它组件调用bindService()进行绑定服务时,系统会调用它的生命周期方法,,其中有客户端绑定到Service,那么客户端通过IBinder接口与服务进行通信,客户端通过unbindService()方法进行断开连接,调用onUnbind()方法解绑定,系统调用onDestroy()方法来销毁~

对于掌握Service(服务)知识点。 Service用于后台执行用户指定的操作。 学习不是速成,内容理解,多练多用多查多看即可。

喜欢本文的朋友们 欢迎关注,点赞 收看更多精彩内容

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android之Service学习笔记
本来想学习学习Binder通信机制,在学习的过程中又接触AIDL并开始学习,在AIDL学习过程中看到bindService,接着就想回顾一下Service的一些知识。希望温故可以知新,也算是年末最后一篇笔记,给自己明年有一个好的开头!!
静默加载
2020/05/31
8740
Android Service用法知识点的讲解
android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务),功能(可通信与不可通信)。service和Thread的区别。
达达前端
2019/07/03
7390
Android Service用法知识点的讲解
Service中bindService
最近有用到Activity需要不断的从Service中获取数据,第一个想法肯定就是通过bind回调机制了,有几点概念模糊特此记录下:
全栈程序员站长
2022/06/28
4110
Service中bindService
Android 四大组件学习之Service四
本节学习Service的生命周期。 既然Activity有生命周期,那同理Service也有自己的生命周期。
DragonKingZhu
2022/05/08
2730
Android 四大组件学习之Service四
Android:Service生命周期最全面解析
---- 前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍Service最基础的知识:Service的生命周期 如果你对Service还未了解,建议先阅读我写的文章:
Carson.Ho
2019/02/22
6.5K0
Android四大组件之Service
Hi,大家好,上一期我们讲了如何使用BroadcastReceiver,这一期我们讲解Android四大组件之Service相关知识。每天一篇技术干货,每天我们一起进步。
下码看花
2019/09/02
9320
Android四大组件之Service
[划重点] Service 知识要点
来总结一下 Service 的几个知识要点,包括启动方式、每种启动方式的生命周期、IntentService 源码分析,以及 boundService 三种使用方法。
haifeiWu
2020/02/10
7670
android service原理及免杀(1)
service服务是一个应用程序的四大组件之一,可以在后台执行长时间运行的操作,不提供用户界面。一个应用程序组件可以启动一个服务,它将继续在后台运行,即使用户切到另一个应用程序。此外,一个组件可以绑定到一个服务与它交互,甚至执行进程间的通信(IPC)
随心助手
2019/11/19
9570
Service介绍
使用 start 方式启动的生命周期:onCreate() – > onStartCommand() – > onDestory() 注意: 如果服务已经开启,不会重复回调 onCreate() 方法,如果再次调用 context.startService() 方法,service 而是会调用onStart() 或者 onStartCommand() 方法。停止服务需要调用 context.stopService() 方法,服务停止的时候回调 onDestory 被销毁。 特点: 一旦服务开启就跟调用者(开启者)没有任何关系了。开启者退出了,开启者挂了,服务还在后台长期的运行,开启者不能调用服务里面的方法。
是阿超
2022/11/16
8300
Android学习笔记(八)深入分析Service启动、绑定过程
codingblock
2017/12/29
1K0
Android学习笔记(八)深入分析Service启动、绑定过程
startService bindService 区别「建议收藏」
Android执行Service有两种方法,一种是startService,一种是bindService。下面让我们一起来聊一聊这两种执行Service方法的区别。
全栈程序员站长
2022/09/01
5900
startService bindService 区别「建议收藏」
android service详解(1)
(2)Service是可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响,除非系统必须回收内存资源,否则系统不会停止或销毁Service。
随心助手
2019/10/15
1.5K0
android service详解(1)
【Android从零单排系列三十七】《Android四大组件——Service》
小伙伴们,在上文中我们介绍了Android组件Fragment,本文我们继续盘点介绍Android开发中另一个非常重要的组件Service。
再见孙悟空_
2023/07/17
3860
[Android] Service服务详解以及如何使service服务不被杀死
  服务是一个应用程序组件,可以在后台执行长时间运行的操作,不提供用户界面。一个应用程序组件可以启动一个服务,它将继续在后台运行,即使用户切换到另一个应用程序。此外,一个组件可以绑定到一个服务与它交互,甚至执行进程间通信(IPC)。例如,一个服务可能处理网络通信,播放音乐,执行文件I/O,或与一个内容提供者交互,都在后台执行。
wOw
2018/09/18
4.6K0
[Android] Service服务详解以及如何使service服务不被杀死
Android入门教程 | 四大组件之Service(前台服务,后台服务)
Service是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。
Android_anzi
2021/10/20
6.3K0
23 个重难点突破,带你吃透 Service 知识点「长达 1W+ 字」
Service 会运行 onCreate ,然后是调用 onBind , 这个时候调用者和 Service 绑定在一起。调用者退出了,Srevice 就会调用 onUnbind -> onDestroyed 方法。
圆号本昊
2021/09/24
1K0
23 个重难点突破,带你吃透 Service 知识点「长达 1W+ 字」
Android:(本地、可通信的、前台、远程)Service使用全面介绍
用法很简单,只需要在原有的Service类对onCreate()方法进行稍微修改即可,如下图:
Carson.Ho
2019/02/22
1.3K0
Service基础
Service是Android四大组件之一,主要两个目的: 后台运行和跨进程访问。
小小工匠
2021/08/16
2K0
【Android】Service介绍和生命周期
Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。
人不走空
2024/07/16
6400
【Android】Service介绍和生命周期
2016级移动应用开发在线测试12-service
1. Service是Android系统中的四大组件之一(Acitivty、Service、ContentProvider、BroadcastReceiver),以下关于Service描述错误的是()  
达达前端
2022/04/29
6280
相关推荐
Android之Service学习笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档