美文网首页
IntentService源码分析

IntentService源码分析

作者: 愤怒的板蓝根 | 来源:发表于2018-09-16 11:06 被阅读0次

    首先 先上图

    这里面的方法其实不多 我们先来一个一个的看   首先是ServiceHandler

    它继承Handler   然后再handleMEssage中 处理方法 onHandleIntent 是一个抽象方法 这个方法的解释是 一次只执行一个任务不会像service一样 有多个后台服务 我们接着往下看

    这个方法里面使用了一个HandlerTread (可以看我关于HandlerTread的源码分析)线程来处理这些任务 

    重写了这些方法  先从STAR方法说起  通过HANDLER的享元设计模式 获取了一个MESSAGE对象然后发送消息

    第二个 onStartCommand方法 做了一个判断 第一个表示如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。

    第二个的常量 解释为   “非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。

    后面两个方法就没没必要解释了  这次源码分析就到此为止

    相关文章

      网友评论

          本文标题:IntentService源码分析

          本文链接:https://www.haomeiwen.com/subject/wspxnftx.html