IntentService的优先级比Service高.

IntentService是继承并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService的方式和启动传统的Service一样,同时,当任务执行完后,IntentService会自动停止,而不需要我们手动去控制或stopSelft().另外启动IntentService多次,而每次一个耗时操作会以工作队列的方式在IntentService的onHandleIntent回调方法中执行,并且,每次只会执行一个工作线程,执行完第一个再执行第二个. 在IntentService里面可以做耗时的操作.

一 .源码

IntentService内部也是封装了HandlerThread + Handler的异步架构.IntentService启动后和Service一样,执行onCreate和onStartCommand方法.

在onStart()方法中发送消息HandlerThread的looper中,looper再到Handler中进行处理.

在Handler中调用IntentService中的抽象方法onHandleIntent,在对应的IntentService的子类中的onHandleIntent方法中执行耗时的操作.

在执行完异步操作后,会调用stopSelf终止任务. 如果传递是stopSelf(msg.arg1)那么会等任务执行完后再stop,如果没有参数的那么久会立即进行stop。

二 .在实现IntentService中必须要实现下面2个方法.

results matching ""

    No results matching ""