Services的生命周期
来源:互联网 发布:java maven 项目打包 编辑:程序博客网 时间:2024/06/07 03:01
转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/51366772
本文出自【吴孝城的CSDN博客】
Android的四大组件之一:Services
官网介绍:http://developer.android.com/guide/components/services.html
Service是Android的一个程序组件,运行在后台且不提供用户界面,能被其他应用程序启动,必须在AndroidManifest.xml里声明
Service运行在程序所在进程的主线程(UI线程)中,如果要执行一些很耗CPU的工作或者一些阻塞操作,应创建一个子线程来执行
Service的启动方式有两种:Started和Bound
Started:非绑定服务
通过startService()启动,Service经历了:onCreate() –> onStartCommand()
这时Service处于运行状态,其中onStartCommand()可以执行多次
通过stopService()停止,Service经历了:onDestroy()
这里Service停止
Bound:绑定服务
调用bindService()方法,Service会运行onCreate() –> onBind(),这时调用者和Service绑定在一起,onBind()只能绑定一次
当完成操作时,调用unbindService()方法解除绑定,解除绑定后系统会销毁这个服务
调用者退出,Service就会调用onUnbind() –> onDestroy()销毁服务
当其他组件要通过bindService()来绑定服务时,系统会回调onBind()方法,在onBind()中必须返回IBinder来返回一个接口,客户端通过它来与服务器通信,如果不想被绑定,就返回null。
总结下Service的生命周期
调用startService()的生命周期为:onCreate() –> onStartCommand() –> onDestroy()
调用bindService()的生命周期为:onCreate() –> onBind()–> onUnbind() –> onDestroy()
startService()启动的服务在启动服务的组件退出时服务还在,可通过stopSelf()或stopSelfResult自己停止,或由其他组件调用stopService()来终止
bindService()启动的服务在启动服务的组件退出时服务也会停止,解除绑定服务也会停止
另一种可能
如果启动服务后绑定了服务,调用stopService()方法服务是不会停止的,只能调用unbindService()解绑,解绑后服务就会停止
Service的使用:http://blog.csdn.net/wu_wxc/article/details/51377512
认真看完也就能掌握Service了
- Services的生命周期
- Services生命周期
- android的Services生命周期和使用方法
- WCF RIA Services Domain Serive的生命周期和数据交互
- android services生命周期深刻认识
- jax-rs(Java API for RESTful Web Services) 实践教程 之五 —— 注入全局变量 和 rest的生命周期
- Web Services的魅力
- web services的基本概念
- web services的基本原理
- Web Services的身份验证
- Web Services的身份验证
- Web Services的基本原理
- web services的基本原理
- Web Services的基本原理
- Windows Services的二三事
- 常用的web services
- Web Services的基本原理
- Services的一点理解
- gdb使用方法简介(转)
- Android:控件布局(相对布局)RelativeLayout
- Fedora 13 系统安装
- 破门锁
- http-客户端识别与cookie机制
- Services的生命周期
- Linux常用操作
- 利用管道化连接下载网页 Java
- Swift 基本语法 : 一
- leetcode 183. Customers Who Never Order
- hdu4859 海岸线
- 第10周项目3-警察与厨师(2)
- mysql保存文件
- 图像特效---(Instagram)1977滤镜