Service的启动模式以及onStartCommand的重载
2017-09-04 15:23
316 查看
Service启动顺序
startService调用
在启动Service的时候,如果是第一次启动Service调用顺序为onCreate->onStartCommand->onStart;销毁Servie时调用onDestroy函数;
在开启Service的时候如果Service已经被创建则直接调用onStartCommand函数,不再调用onCreate函数
bindService调用
bindService调用时,若Service没有被创建调用bindService首先会onCreate然后再onBind,正常的调用顺序是首先startService再bindService
在销毁时首先unbind函数,之后再stopService
onStartCommand函数
Service如果在调用stopService以及stopSelf之前停止,即发生异常停止了服务,服务会再次自动启动,在启动时会首先调用onStartCommand函数再调用onStart函数,因此在onStartCommand函数中返回一个返回值,用来表示服务的启动方式。
函数体:onStartCommand(Intent intent, int flags, int startId)此函数有一个返回值,返回值的值可能是START_STICKY、START_NOT_STICKY、START_REDELIVER_INTENT。
START_STICKY:在服务被杀死后保留服务的状态为初始状态,但不保留传入的Intent,重新启动服务调用onStartCommand时,如果没有其他启动命令传递到Service中的话,此时Intent的值为空
START_NOT_STICKY:在服务被意外杀死时,不会重新启动服务
START_REDELIVER_INTENT:服务被意外杀死后,会自动重启服务,重新启动时会保留Intent
相关文章推荐
- Service的启动模式以及onStartCommand的重载
- 关于service多次调用onStartCommand只会启动一个service
- Service中的onStartCommand()方法的三种返回值的含义以及理解
- onStartCommand after service process is killed when started with START_STICKY
- Android activity的startActivityForResult和onActivityResult与启动模式的关系
- 设置ctl.start 属性启动init.rc 中service以及权限问题
- Service#onStartCommand返回值解析
- Service 中的 onStart 和 onStartCommand
- service里面的onstart()方法和onStartCommand()方法的区别
- service的onStartCommand方法
- Android中Service的onStartCommand()函数返回值
- android service的onstart()和onStartCommand()的区别
- 【起航计划 033】2015 起航计划 Android APIDemo的魔鬼步伐 32 App->Service->Foreground Service Controller service使用,共享service,前台服务,onStartCommand
- Android中 Service的onStartCommand方法空指针错误
- Android Service的onStartCommand方法返回值作用
- Service的onStartCommand中报空指针问题
- Service之onStartCommand()
- Android初学习 - Service 中的 onStart 和 onStartCommand
- Service: onStartCommand 诡异的返回值
- Service中onStartCommand的返回值问题