Service的启动模式以及onStartCommand的重载
2018-01-17 11:35
381 查看
#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
##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()方法的三种返回值的含义以及理解
- Android Service的理论探讨与实践(二)之onStartCommand()方法返回值的探究
- Service onStartCommand的参数和返回值的含义
- Activity的启动模式以及onNewIntent(Intent 4000 intent)
- Service的onStartCommand()方法返回值详解
- Service的onStartCommand中报空指针问题
- Service之onStartCommand()
- Android Service生命周期 Service里面的onStartCommand()方法详解
- Service的两种启动方式onstartService和onbindService区别
- Service的onStartCommand方法空指针错误
- Android Service生命周期 Service里面的onStartCommand()方法详解
- service的onStartCommand
- Activity的启动模式以及onNewIntent和onConfigurationChanged这两个生命周期方法的场景
- Service的onStartCommand方法的疑问
- Service之onStartCommand()方法解析笔记
- 设置ctl.start 属性启动init.rc 中service以及权限问题
- Service#onStartCommand返回值解析
- 论Activity及启动模式,Fragment,Service的使用以及生命周期