Service和IntentService的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Service和IntentService的区别相关的知识,希望对你有一定的参考价值。

参考技术A Service 相信大家都比较熟悉了,就不重点做阐述解释了.

IntentService 也是继承 Service ,但是和正常的 Service 的区别有2点:

分析 IntentService 源码:

发现再 onCreate() 中开启来一个 HandlerThread ,并创建来 ServiceHandler ,从而保证当前任务的异步处理和任务的单一处理;

我们看到再 onStart() 方法中, mServiceHandler 发送来执行任务的 msg ,接下来我们看下 mServiceHandler 中的接收处理

可以看到接收到任务后,直接调用 onHandlerIntent() 方法来处理异步任务,任务结束后自动调用 stopSelf() 来终止线程
经常我们的在广播或者 Service 的接收中要处理相关的耗时操作,建议采用 IntentService 来优化处理
到此,通过分析源码,之前说的2个区别都可以很明白的解释了!

以上是关于Service和IntentService的区别的主要内容,如果未能解决你的问题,请参考以下文章

Service和IntentService的区别

IntentService与Service的区别

源码分析Service和IntentService的区别

IntentService 源码分析

我应该使用 IntentService 还是 Service 进行 UI 更新?

IntentService 源码分析