service本身存在两个问题
1.service不会专门启动一条单独的进程,service与它所在的应用位于同一个进程中
2.service也不是一条新的线程,因此不应该在service中直接处理耗时的任务。
intentService
intentService正好可以弥补service的两个不足:intentService使用队列来管理请求intent,每当客户端通过intent请求启动intentService时,intentService会将该intent加入到队列中,然后开启一个新的worker线程来处理该intent。对于异步的startService()请求,intentService会依次从队列中取出intent,该线程保证同一时刻只处理一个intent。而且intentService不会阻塞主线程,所以intentService自己可以处理耗时任务。当所有请求处理完后,intentService会自动停止。扩展intentService实现service无须重写onBind()。onStartCommand()方法,只要重写onHandlerIntent()方法即可。