这么详细的AndroidService生命周期解析你确定不看吗

前言

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

一、初步了解Service

在这里插入图片描述

  • Service是Android系统中的四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。

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

二、生命周期

在这里插入图片描述
Service的生命周期没有Activity那么复杂。

1.startService / stopService

生命周期顺序:onCreate- onStartCommand- onDestroy

OnCreate():在服务启动时执行,只执行一次。

系统在service第一次创建时执行此方法,来执行只运行一次的初始化工作。如果service已经运行,这个方法不会被调用。

onStartCommand()

每次客户端调用startService()方法启动该Service都会回调该方法(多次调用)。一旦这个方法执行,service就启动并且在后台长期运行。通过调用stopSelf()或stopService()来停止服务。

OnDestory()

系统在service不再被使用并要销毁时调用此方法(一次调用)。service应在此方法中释放资源,比如线程,已注册的侦听器,接收器等等.这是service收到的最后一个调用。

2.bindService / unbindService

生命周期顺序:onCreate- onBind- onUnBind- onDestroy

同样首先是OnCreate(),接着是

OnBind()

当组件调用bindService()想要绑定到service时(比如想要执行进程间通讯)系统调用此方法(一次调用,一旦绑定后,下次再调用bindService()不会回调该方法)。在你的实现中,你必须提供一个返回一个IBinder来以使客户端能够使用它与service通讯,你必须总是实现这个方法,但是如果你不允许绑定,那么你应返回null。

OnUnbind()

当前组件调用unbindService(),想要解除与service的绑定时系统调用此方法(一次调用,一旦解除绑定后,下次再调用unbindService()会抛出异常)。

最后是OnDestory() :停止服务时执行。

开启和停止服务的类:

  • 启动服务的方法,startService();
  • 停止服务的方法,stopService();

在这里插入图片描述

后文

本文 全面解析了Service的生命周期
如果你还想了解关于Service的其他知识,请扫描下方二维码:

《Android架构开发手册》Android进阶框架学习教材

本项目汇聚了业界知名架构文章。是难得一见的 Jetpack MVVM 最佳实践!在以简驭繁的代码中,对架构乃至标准化开发模式形成正确、深入的理解!

这份《Android架构开发手册》主要介绍Android框架的初始化过程及主要组件的工作原理,直接分析和整理了Android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成实际Android平台骨干的服务框架。

内容简介:Android Jetpack实战和教程,MVC/MVP/MVVM,大厂架构演进之路等。

内容特点:不仅可以供具备一定开发经验的Android开发人员参考阅读,也可作为Android进阶开发者框架入门教材使用。

由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要《Android架构开发手册》完整文档的可以加微信 即可免费领取!

目录

img

img

第一章. Android Jetpack实战和教程

​ \1. 即学即用Android Jetpack - Navigation

​ \2. 即学即用Android Jetpack - Data Binding

​ \3. 即学即用Android Jetpack - ViewModel & LiveData

​ \4. 即学即用Android Jetpack - Room

​ \5. 即学即用Android Jetpack - Paging

​ \6. 即学即用Android Jetpack - WorkManger

​ \7. 即学即用Android Jetpack - Paging 3

img

第二章. MVC/MVP/MVVM

​ \1. MVC框架-导言即学即用Android Jetpack - Data Binding

​ \2. MVC框架-ASP.NET窗体

​ \3. MVC框架-第一应用程序

​ \4. MVC框架-文件夹

​ \5. MVC框架-模型

​ \6. MVC框架-控制器

​ \7. MVC框架-视图

​ \8. MVC框架-布局

​ \9. MVC框架-路由引擎

​ \10. MVC框架-动作过滤器

​ \11. MVC框架-高级示例

​ \12. MVC框架-Ajax支持

​ \13. MVC框架-捆绑

​ \14. MVC框架-异常处理

​ \15. MVP架构设计:Google官方MVP思想解读

​ \16. 开源MVP框架

​ \17. MVC、MVP、MVVM,到底该怎么选?

img

第三章. 大厂架构演进之路

​ \1. 抖音 iOS 工程架构演进MVC框架-ASP.NET窗体

​ \2. 美团外卖 Android 平台化架构演进实践

​ \3. 安居客 Android 项目架构演进

​ \4. 携程 Android App 插件化和动态加载实践

​ \5. 微信Android客户端架构演进之路

​ \6. 千万级用户的 Android 客户端是如何养成的 | 架构师实践日

​ \7. 手机淘宝构架演化实践

​ \8. 英语流利说 Android 架构演进

img

由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要《Android架构开发手册》完整文档的可以加微信 即可免费领取!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值