IntentService

1. Service缺点:Service默认运行在主线程即UI线程,所以如果Service运行耗时或可能堵塞的操作时,你的APP可能出现ANR错误;

2. IntentService特点:
A.生成一个默认且与主线程互相独立的工作者线程来执行所有传送至onStartCommand方法的Intent
B.生成一个工作队列来传送Intent对象给onHandleIntent方法,同一时刻只能传送一个Intent对象,从而避免多线程问题;
C.在所有的请求Intent都被执行完后自动停止服务,不需要自己去调用stopSelf方法来停止该服务;
D.提供onBind方法的默认实现,返回null

E.提供onStartCommand方法默认实现,它将Intent先传送至工作队列,然后从工作队列中每次取出一个传送至onHandleIntent方法,该方法中对Intent进行处理;

3.开发:继承IntentService,创建无参构造方法,重写onHandleIntent方法

4.源码分析:继承自Service、内部有继承自Handler的内部类;

5.  特殊方法:setIntentRedelivery()
设为trueonStartCommand返回START_REDELIVER_INTENT,如果onHandleIntent在返回之前进程死掉了,那么进程将会重启,Inent重新投送,如果有大量的Intent要投送,则只保证最近的Intent会被重新投送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值