Android中service的生命周期
Service作为Android四大组件
- Service
- Activity
- ContentProvider
- BroadcastReceiver
之一,应用非常广泛,和Activity一样,Service也有一系列的生命周期回调函数。

1.生命周期流程图:

- onCreate():
首次创建服务时,系统将调用此方法。如果服务已经运行,则不会调用此方法,该方法只调用一次。
- onStartCommand():
当另一个组件通过调用starService()请求启动服务时,系统将调用此方法。
- onDestroy():
当服务不在使用且将被销毁时,系统将调用此方法。
- onBind():
当另一个组件通过调用bindService()与服务绑定时,系统将调用此方法。
- onUnbind():
当另一个组件 通过调用unbindService()与服务解绑时,系统将调用此方法。
- onRebind():
当旧的组件与服务解绑后,另一个新的组件与服务绑定时,onUnbind()返回true时,系统将调用此方法。
2.生命周期方法
在Service的生命周期中,常用的方法有:
- 手动调用的方法:
| 手动调用的方法 | 作用 |
|---|---|
| startService() | 启动服务 |
| stopService() | 关闭服务 |
| bindService() | 绑定服务 |
| unbindService() | 解绑服务 |
- 自动调用的方法
| 自动调用方法 | 作用 |
|---|---|
| onCreat() | 创建服务 |
| onStartCommand() | 开始服务 |
| onDestroy() | 销毁服务 |
| onBind() | 绑定服务 |
| onUnbind() | 解绑服务 |
3.生命周期的调用
- 启动Service服务
单次:startService()->onCreate()->onStartCommand()
多次:startService()->onCreate()->onStartCommand()->onStartCommand() - 停止Service服务
stopService() —> onDestroy() - 绑定Service服务
bindService() —> onCreate() —> onBind() - 解绑Service服务
unbindService() —> onUnbind() —> onDestroy() - 启动绑定Service服务
startService() —> onCreate() —> onStartCommand() —> bindService() —> onBind() - 解绑停止Service服务
unbindService() —> onUnbind() —> stopService() —> onDestroy() - 解绑绑定Service服务
unbindService() —> onUnbind(ture) —> bindService() —> onRebind()
Android中service的生命周期的更多相关文章
- Android 测试Service的生命周期
package com.example.myapp4; import android.support.v7.app.ActionBarActivity; import android.content. ...
- 18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景
============================================================================ 服务的生命周期: 一.采用start的方式开始 ...
- android基础---->service的生命周期
服务是一个应用程序组件代表应用程序执行一个长时间操作的行为,虽然不与用户交互或供应功能供其它应用程序使用.它和其他的应用对象一样,在他的宿主进程的主线程中运行.今天我们开始android中普通serv ...
- 浅谈Android中Activity的生命周期
引言 我想对于Android开发人员来说,Activity是再熟悉不过了,今天我们就来探讨下Activity的生命周期.熟悉的掌握Activity对于开发健壮的Android应用程序来说至关重要.下面 ...
- Android中Activity的生命周期
简介: 这个基本是必问的问题了,说一下你对Activity生命周期的理解,呵呵… onCreate, onStart, onResume, onPause, onStop, onDestroy, on ...
- 【android】android中activity的生命周期
activity生命周期: 实例代码: public class DemoActivity extends Activity { //1.activity第一次被创建的时候,执行 @Override ...
- Android中服务的生命周期与两种方式的区别
服务的生命周期跟Activity的生命周期类似.但是生命周期甚至比你关注服务如何创建和销毁更重要,因为服务能够在用户不知情的情况下在后台运行. 服务的生命周期---从创建到销毁---可以被分为以下两个 ...
- Android中服务的生命周期回调方法
- Android 中Service生命周期
使用context.startService() 启动Service 其生命周期为context.startService() ->onCreate()- >onStart()->S ...
随机推荐
- Python中的@staticmethod和@classmethod的区别
一直搞不明白,类方法和静态方法的区别,特意研究了一下,跟大家分享一下. 为了方便大家了解两者的差别,以下的示例代码将有助于发现其中的差别: class A(object): def foo(self, ...
- 【spring boot】spring boot 拦截器
今日份代码: 1.定义拦截器 import com.alibaba.fastjson.JSON; import org.apache.commons.collections.CollectionUti ...
- 洛谷 P1347 【排序】
这篇题解没有用拓补排序 (嗐 菜就直说) 个人感觉这道题拓补排序没有变种\(Floyd\)好写吧,思维难度也低一点(亲眼目睹机房dalao这道题拓补排序调了很久). 吐槽结束,开始正题~ 对于这道题为 ...
- Android详细介绍MPAndroidChart-LineChart
在开发当中曲线图用的时候太多了,之前都是自己手写,之后发现太累还丑不符合需求 MPAndroidChart 先介绍LineChart 0.效果图 首先依赖 1. implementation 'co ...
- Netty 源码解析(四): Netty 的 ChannelPipeline
今天是猿灯塔“365篇原创计划”第四篇. 接下来的时间灯塔君持续更新Netty系列一共九篇 Netty 源码解析(一): 开始 Netty 源码解析(二): Netty 的 Channel Netty ...
- 可见格式化模型BFC与应用
什么是BFC BFC指的是块级格式化上下文,简单的来说,BFC就是创建一个div盒子或者给已存在的盒子激活BFC,盒子内部的元素布局不影响盒子外部的元素.也就是所谓的相互隔绝,互不影响. BFC是一个 ...
- uniapp,微信小程序中使用 MQTT
最近在uniapp打包成微信小程序的项目中第一次用到了MQTT.使用比较简单,但是还是遇到了一些问题.在此记录一下. 官方文档:MQTT Github 官方MQTT测试工具:MQTTX.测试工具使用说 ...
- Django之模型层第一篇:单表操作
Django之模型层第一篇:单表操作 一 ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数 ...
- 数据可视化基础专题(三):Pandas基础(二) csv导入与导出
1.csv导入 1.1 csv导入 .read_csv()函数 pandas.read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~Any ...
- ASP.NET Core端点路由 作用原理
端点路由(Endpoint Routing)最早出现在ASP.NET Core2.2,在ASP.NET Core3.0提升为一等公民. Endpoint Routing的动机 在端点路由出现之前,我们 ...