Android中Service类onStartC…
2015-11-12 15:54
639 查看
讲的通俗易懂,转载了,谢谢博主原文地址:Android中Service类onStartCommand的返回值问题作者:阿-_-涵
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开发的过程中,每次调用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那些事儿
- Android本地文件异步加载方式的实…
- android gravity用法,我老是记不…
- AES在Android、JAVA端正常加密解密
- Shader画笔填充
- Android视图状态及重绘流程分析,深入了解View(三)
- Android Fragment 生命周期图
- android中普通的java对象转换成 json格式的字符串
- Android访问WebService的两种方法
- Activity被系统销毁时,返回后的生命周期
- Android Matrix
- Android视图绘制流程完全解析,深入了解View(二)
- android中获取手机分辨率 device screen dimensions
- Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found.
- Android Studio如何删除module
- 文章标题
- android 4.4删除短信
- Android基础入门教程——10.7 WindowManager(窗口管理服务)
- 腾讯打造全新云测试平台 破解软件测试行业死局
- Android编程实现手机自带内部存储路径的获取方法