zoukankan      html  css  js  c++  java
  • Service onStartCommand 备忘

    onStartCommand方法实在Android2.0(API Level 5)中引入的,用来替代之前的onStart方法。onStart方法在2.0以后就不推荐使用了。好吧关于Service这里先不多说。如果想了解的可以看看这个http://www.cnblogs.com/zhangdongzi/archive/2012/01/08/2316711.html 说的很详细了。

     

    当Service启动时就会执行onStartCommand方法来处理任务。

    public int onStartCommand(Intent intent, int flags, int startId) {

     

    return super.onStartCommand(intent, flags, startId);

     

    }

     

    第一个参数

    启动Service时传入的Intent。

    Intent intent = new Intent(this,MyService.class);

    startService(intent);

     

    第二个参数:

    主要用来找出Service的启动方式(例如:在Service结束前被意外的终止了)

    START_FLAG_REDELIVERY:表示Intent参数是由系统在调用stopSelf()终止Service之前被终止后重新传递的。(有点绕口,说白了就是在系统调用stopSelf终止Service之前已经被终止了)

    FLAG_RETRY:表示Service已经在异常终止后重新启动,如果Service之前被设为“START_STICKY”,则会传入这个表示

    第三个:暂时没用过

    返回值

    请注意onStartCommand的返回值。这个返回值有四个值,分别对应不同的情况:

    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_COMPATIBILITYSTART_STICKY的兼容版本,但不保证服务被kill后一定能重启。

     

  • 相关阅读:
    vuex 简单理解
    es2015(es6)学习总结
    工作资源知识点总结收集
    margin-top使用需要注意的地方
    关于用display:table让元素居中的小结
    display:table-cell
    margin:0 auto;不居中
    css选择器总结
    css 选择器优先级
    给行内元素加上绝对定位之后,元素属性的变化
  • 原文地址:https://www.cnblogs.com/ywtk/p/3817696.html
Copyright © 2011-2022 走看看