Service之onStartCommand()
2015-12-24 16:00
246 查看
public int onStartCommand (Intent intent, int flags, int startId)
当其它组件,比如一个activity,通过调用startService()请求started方式的服务时,系统将会调用本方法。 一旦本方法执行,服务就被启动,并在后台一直运行下去。 如果你的代码实现了本方法,你就有责任在完成工作后通过调用stopSelf()或stopService()终止服务。 (如果你只想提供bind方式,那就不需要实现本方法。)
返回值 int 有四种参数,service中的4个常量值
Service.START_STICKY 1
如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用
Service. START_NOT_STICKY 2
“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务
Service.START_REDELIVER_INTENT 3
重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入
Service.START_STICKY_COMPATIBILITY 0
START_STICKY的兼容版本,但不保证服务被kill后一定能重启
当其它组件,比如一个activity,通过调用startService()请求started方式的服务时,系统将会调用本方法。 一旦本方法执行,服务就被启动,并在后台一直运行下去。 如果你的代码实现了本方法,你就有责任在完成工作后通过调用stopSelf()或stopService()终止服务。 (如果你只想提供bind方式,那就不需要实现本方法。)
返回值 int 有四种参数,service中的4个常量值
Service.START_STICKY 1
如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用
Service. START_NOT_STICKY 2
“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务
Service.START_REDELIVER_INTENT 3
重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入
Service.START_STICKY_COMPATIBILITY 0
START_STICKY的兼容版本,但不保证服务被kill后一定能重启
相关文章推荐
- Android IPC进程间通讯机制
- android之定时器AlarmManager
- axis备忘
- Windows XP Service Pack 3 RC1 v.3244 winxp补丁3 提供下载
- Run As Service runassrv.exe 详细参数第1/2页
- 安装MySQL在最后的start service停住了解决方法
- android使用Messenger绑定Service的多种实现方法
- asp.net Web Service 接口大量数据传输解决方案
- Silverlight中动态获取Web Service地址
- android调用web service(cxf)实例应用详解
- 在Android中 获取正在运行的Service 实例
- ASP.NET State service状态服务的问题解决方法
- 卸载ZkeysPHP 后iis网站出现Service Unavailable 解决办法
- IIS Admin Service 服务因 2149647636 (0x80210514) 服务性错误而停止
- Service Temporarily Unavailable的503错误是怎么回事?
- android教程之service使用方法示例详解
- SSB(SQLservice Service Broker) 入门实例介绍
- Android应用程序四大组件之使用AIDL如何实现跨进程调用Service
- Android提高之Service用法实例解析