Android中Service类onStartCommand的返回值问题
2015-06-26 11:41
399 查看
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中通知的使用-----Notification详解
- Android(java)学习笔记116:PC_Phone通信程序报错
- Android ble 蓝牙4.0 总结
- android 休眠唤醒机制分析(三) — suspend
- Android自定义控件
- Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
- 简单粗暴的图片压缩,可以压到100kb以内
- 基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
- Android 开发环境下载地址
- android 欢迎界面的淡入效果
- Android gpio口在sys_comfig中的参数意义
- Android布局文件夹引起的问题
- Android系统内置应用更新或升级后被还原的原因
- 通过浏览器直接打开Android应用程序
- 《Android安全机制解析与应用实践》笔记 第2章
- Android.mk文件解读
- [Android]Can't create handler inside thread that has not called Looper.prepare()
- Android SQLite
- Android onTouchEvent, onClick及onLongClick的调用机制
- Android模拟产生事件