Android中Service类onStartCommand的返回值问题
2016-04-12 17:54
489 查看
Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。然后我们注意到这个函数有一个int的返回值,这篇文章就是简单地讲讲int返回值的作用。
从Android官方文档中,我们知道onStartCommand有4种返回值:
START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。
START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。
START_REDELIVER_INTENT:重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。
START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。
从Android官方文档中,我们知道onStartCommand有4种返回值:
START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。
START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。
START_REDELIVER_INTENT:重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。
START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。
相关文章推荐
- Android自定义View之音频条形图
- Android启动流程分析- action的执行和service的启动
- Android开发之Gradle笔记整理2
- Android Studio 2.0+Gradle 2.12编译Oculus Mobile SDK
- android launchmode(四种启动模式)应用场景及实例
- Android EventBus 使用详解
- android点击系统通知Notification,进入指定的activity
- Android Studio问题及修改办法
- Android动画——Tween动画之Set
- Android ListView实现不同item的方法和原理分析
- Android Wear SDK 中文 ---- 表盘设计 [Designing Watch Face]
- Android动画——Tween动画之Translate
- Android动画——Tween动画之Scale
- 2016~4.12Android 之图片处理
- 40条Android开发优化建议
- Android USB Host与HID通讯
- Android动画——Tween动画之Rotate
- Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
- Android应用控制LED(动态编译LED驱动)
- Android ProGuard代码混淆