前言
- 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架构开发手册》完整文档的可以加微信 即可免费领取!
目录
第一章. 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
第二章. 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,到底该怎么选?
第三章. 大厂架构演进之路
\1. 抖音 iOS 工程架构演进MVC框架-ASP.NET窗体
\2. 美团外卖 Android 平台化架构演进实践
\3. 安居客 Android 项目架构演进
\4. 携程 Android App 插件化和动态加载实践
\5. 微信Android客户端架构演进之路
\6. 千万级用户的 Android 客户端是如何养成的 | 架构师实践日
\7. 手机淘宝构架演化实践
\8. 英语流利说 Android 架构演进
由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要《Android架构开发手册》完整文档的可以加微信 即可免费领取!