android耗时任务_IntentService


如果你看到上一篇 android耗时任务_HandlerThread中所提到的BackService类了的话,那么你肯定有一个冲动,就是把它封装起来方便使用。
别急,Android SDK早就已经为我们提供了和那个BackService基本相同的类——IntentService。因为IntentService和BackService基本相同,所以源码我就不贴了。

先来看一下一个简单的例子:
public class AsyncService extends IntentService {


	public AsyncService() {
		super("AsyncService");
	}


	@Override
	protected void onHandleIntent(Intent arg0) {
	}


}

IntentService的使用简单明了,但是有些事情还是需要注意一下:
1、继承它的类必须要有一个无参的构造函数,并在此构造函数中调用父类的有参的构造函数,否则会报错。
2、onHandleIntent是一个抽象方法,必须实现。
3、IntentService已经给创建了新的线程,并且在线程中开启了looper-handler机制,onHandleIntent就是运行在这个线程空间中的,所以可以直接进行异步任务。
4、可以多次启动这个IntentService的实现类,它的生命周期和普通的生命周期基本相同,另外多个异步任务可以通过intent传值区分,并且多个异步任务会排队处理。
5、不需要主动调用stopSelft()来结束服务。因为,在所有的异步任务被处理完后,系统会自动关闭服务。
6、和普通的service一样需要在manifest中注册,启动过车也和普通service一样。

它的多次启动时的生命周期如下:
-->AsyncService
-->onCreate
-->onStartCommand
-->onStart
-->onHandleIntent
-->onStartCommand
-->onStart
-->onHandleIntent
-->onDestroy





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值