IntentService面试详解
一、IntentService是什么
IntentService是继承并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService的方式和启动传统的Service一样,同时,当任务执行完后,IntentService会自动停止,而不需要我们手动去控制或stopSelf()。另外,可以启动IntentService多次。而每一个耗时操作会以工作队列的方式再IntentService的onHandleIntent回调方法中执行,并且,每次只会执行一个工作线程,执行完第一个再执行第二个
·它本质是一种特殊的Service,继承自Service并且本身就是一个抽象类
·它内部通过HandlerThread和Handler实现异步操作
二、IntentService使用方法
创建IntentService时,只需实现onHandleIntent和构造方法,onHandleIntent为异步方法,可以执行耗时操作
三、IntentService源码解析
onCreate()新建一个HandlerThread说明本质,加上Looper说明可以执行异步线程的Looper
stop有参数,等待消息处理完终止任务
onHandleIntent是一个异步方法,执行完所有任务结束
总结:
它本质上就是一个封装了HandlerThread和handler的异步框架