@Overridepublic int onStartCommand(Intent intent, int flags, int startId) { System.out.println("---------->>onStartCommand2");return super.onStartCommand(intent, flags, startId);}

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后一定能重启。 当程序在运行时被杀死,当重新启动这个服务的时候,最有的一个Intent将会被传递过的。

更多相关文章

  1. Android 9.0 P 状态栏下移的实现
  2. Android禁止下拉状态栏
  3. 状态开关按钮ToggleButton
  4. android获取sd卡路径方法:
  5. android获取系统环境变量
  6. android中常见的二种数据解析方法----XML和Json
  7. Android SDK Manager无法更新解决方法
  8. android 调用系统安装程序
  9. Android调用系统自带的文件管理器进行文件选择并获得路径

随机推荐

  1. MySQL加密和解密实例详解
  2. mysql sql语句性能调优简单实例
  3. Python3.6-MySql中插入文件路径,丢失反斜
  4. windows下mysql 5.7版本中修改编码为utf-
  5. Workbench通过远程访问mysql数据库的方法
  6. Centos7下MySQL安装教程
  7. Linux服务器中MySQL远程连接的开启方法
  8. centos7.3 安装mysql5.7.18的详细教程
  9. Mysql中基本语句优化的十个原则小结
  10. mysql5.7 修改用户初始密码的方法