【安卓篇】四大组件●Service服务介绍及生命周期
来源:互联网 发布:海岛奇兵震爆数据 编辑:程序博客网 时间:2024/05/17 09:04
一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。
比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。
在这个例子中,媒体播放器这个activity 会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service 一直执行,直到这个service 运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service 上(如果这个service 还没有运行,则将启动它)。当连接到一个service 之后,我们还可以通过service 提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。
Service使用步骤如下
1、继承service类
2、AndroidManifast.xml配置清单文件中<application>节点里对服务进行配置
服务不能自己运行,需要通过Contex.startService()或Contex.bindService()启动服务
通过startService()方法启动的服务于调用者没有关系,即使调用者关闭了,服务仍然运行,想停止服务要调用Context.stopService(),此时系统会调用onDestory(),使用startService()方法启动服务时,服务首次启动系统先调用服务的onCreate()-->onStart(),如果服务已经启动,再次调用则只会触发onStart()方法
使用bindService()启动的服务与调用者绑定,只要调用者关闭服务就终止,使用此方法启动时,服务首次启动系统先调用服务的onCreate()-->onBind(),如果服务已经启动再次调用不会再触发这2个方法,调用者退出时系统会调用服务的onUnbind()-->onDestory(),想主动解除绑定可使用Contex.unbindService(),系统依次调用onUnbind()-->onDestory();
Service服务生命周期:
Service完整的生命周期:从调用onCreate()开始直到调用onDestroy()结束
Service有两种使用方法:
1、以调用Context.startService()启动,而以调用Context.stopService()结束
2、以调用Context.bindService()方法建立,以调用Context.unbindService()关闭
service重要的生命周期方法
void onCreate()
当用户调用startService()或bindService()时,Service第一次被实例化的时候系统会调用,整个生命周期只调用1次这个方法,通常用于初始化设置。注意:多次调用startService()或bindService()方法不会多次触发onCreate()方法
void onDestroy()
当用户调用stopService()或unbindService()来停止服务时被系统调用,(整个生命周期只调用1次)用来释放onCreate()方法中创建的资源
通过startService()方法启动的服务
void onStart(Intent intent)
初始化结束后系统会调用该方法,用于处理传递给startService()的Intent对象。如音乐服务会打开Intent 来探明将要播放哪首音乐,并开始播放。注意:多次调用startService()方法会多次触发onStart()方法
通过bindService ()方法启动的服务
IBinder onBind(Intent intent)
初始化结束后系统会调用该方法,用来绑定传递给bindService 的Intent 的对象。注意:多次调用bindService()时,如果该服务已启动则不会再触发此方法
boolean onUnbind(Intent intent)
用户调用unbindService()时系统调用此方法,Intent 对象同样传递给该方法
void onRebind(Intent intent)
如果有新的客户端连接至该服务,只有当旧的调用onUnbind()后,新的才会调用该方法
- 【安卓篇】四大组件●Service服务介绍及生命周期
- 【安卓篇】四大组件●BroadcastReceive广播接收器介绍及生命周期
- 【安卓篇】Android四大组件介绍及生命周期总结篇
- Android四大基本组件及生命周期介绍
- Android四大基本组件介绍及生命周期
- android四大组件介绍及生命周期
- 【安卓篇】Android四大组件●Activity组件介绍与生命周期
- Android 四大组件生命周期:Service
- Android四大组件服务(Service)
- 四大组件之服务Service
- Service服务---四大组件之一
- Android 四大组件 Service 服务
- Android四大组件Service 服务
- Android 四大组件 Service 服务
- 四大组件之Service(服务)
- 四大组件 — Service服务
- 【安卓篇】Android四大组件●Content Provider组件介绍与生命周期
- 【安卓篇】Android四大组件●Activity组件介绍与生命周期(存在不明觉厉)
- STL list链表的用法详解
- layoutSubviews何时调用的问题
- libxml/HTMLparser.h file not found 解决方法 (libxml.dylib错误处理)
- 建站:建立本地测试服务器
- 关于JS定时器的一些总结
- 【安卓篇】四大组件●Service服务介绍及生命周期
- hdu 1016 Prime Ring Problem
- 【CH Round #48 - Streaming #3(NOIP模拟赛Day1)】 题解
- 双WaitForMultipleObjects机制
- 欢聚时代Linux下的主动防御
- ZOJ 3019 Puzzle
- Undefined symbols for architecture i386或者armv7: “_OBJC_CLASS_$_XXX
- 【安卓篇】Android四大组件●Content Provider组件介绍与生命周期
- 13. Java类集 Part 1(类集、Collection接口、List接口、Set接口、SortedSet接口、集合的输出) ----- 学习笔记