IntentService简介

IntentService:的实现与用法简介


    IntentService是Service的子类,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。

    IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来处理所有Intent请求对象(通过startService方法

发送的任务),这样避免了在主线程中处理事务导致主线程阻塞。

    IntentService对象在执行完请求工作之后会判断是否还有新的Intent请求到达,如果没有,自动停止Service,负责执行下一

个Intent请求所对应的任务。

    IntentService在处理事务时采用的是handler 方式,创建一个ServiceHandler的内部Handler,并把它直接绑定到HandlerThread

所对应的子线程上。ServiceHandler把处理一个Intent所对应的事务都封装到onHandleIntent的抽象方法中。因此应用时直接实现

onHandleIntent方法即可。在方法里面根据传入的Intent不同进行相应的处理。

    IntentService默认实现了Onbind()方法,返回值为null。

使用IntentService步骤:


    1、写无参构造器,构造器中调用super("name");因为Service实例化是由系统完成的,而系统用的是无参构造器来实例化Service的。

    2、实现抽象方法onHandleIntent,并在里面根据Intent的不同进行处理。

IntentService的特点:


    (1)、它创建了一个独立的工作线程来处理所有的通过onStartCommand()传递的任务。

    (2)、创建一个工作队列,来逐个发送Intent给onHandleIntent()。

    (3)、不需要主动调用stopSelft()来结束服务。因为在所有的Intent被处理完后,系统会自动关闭服务。

    (4)、默认实现onBind()方法,返回null

    (5)、默认实现的onStartCommand()的目的是将Intent插入到工作队列中。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值