能否请你帮我了解的IntentService
和Service
之间的区别?IntentService和服务有什么区别?
回答
总之,一个服务是为开发者设立后台操作在更大范围实施,而一个IntentService是有用的“发射后不管”作战,照顾后台线程的创建和清理。
从文档:
服务 A服务是表示任一应用程序的同时不与用户交互以执行一个较长的运行的操作或用于其他应用程序使用提供的功能的欲望的应用组件。
IntentService 服务是IntentService 服务是处理需求(表示为意图)异步请求的基类。客户通过startService(Intent)
呼叫发送请求;该服务根据需要启动,使用工作线程轮流处理每个Intent,并在其停止工作时自行停止。
请参阅本文档 - http://developer.android.com/reference/android/app/IntentService.html
服务:它运行在您的系统上的背景。例如,
- 如果你去一个酒店,你给你的汤以服务器
- 的服务器获取您的订单,发送到厨师
- 你不知道的汤怎么是在厨房里,什么工艺制成所需要的做的汤
- 一旦您的订单已准备就绪,服务器为您带来的汤。
后台进程:厨师制汤
IntentService: - 它是连续的服务。(即)当你在一个时间服务器订购许多食品项目,但该服务器由一个提供这些项目之一,不一次全部交付。
Service
运行实际上是在你的应用程序的同一个线程;当你扩展Service时,你必须手动产生新线程来运行CPU阻塞操作。
VS
IntentService
是Service
子类,可以产生一个线程从那里做后台工作(无需创建一个新的线程做CPU阻塞操作)。
是不是为了防止CPU阻塞操作,而不是运行它们?林不知道虽然 – committedandroider
多数民众赞成那是真的,服务neew一个新的线程运行CPU阻止操作 –
Service
是一个基类服务实现的。 Service
在应用程序的主线程中运行,这可能会降低应用程序的性能。因此,IntentService
是Service的一个直接子类,可以让事情变得更简单。
IntentService
的用于在后台执行特定任务。一旦完成,IntentService
的实例将自动终止。它的用法示例是从互联网下载某个资源。
差异
Service
类使用应用程序的主线程,而IntentService
创建工作线程,并使用该线程来运行服务。IntentService
创建一个队列,每次传递一个意向到onHandleIntent()
。因此,应该通过直接扩展Service
类来实现多线程。Service
班级需要使用stopSelf()
进行手动停止。同时,IntentService
完成执行时自动自动停止。IntentService
implementsonBind()
返回null
。这意味着IntentService
不能被默认绑定。IntentService
执行onStartCommand()
发送意图排队和onHandleIntent()
。
简而言之,使用IntentService
只有两件事要做。首先,实施构造函数。其次,实施onHandleIntent()
。对于其他回调方法,需要调用super才能正确跟踪它。
尼斯的解释。我正在制作音乐应用程序。那么,哪一个很好呢?服务或IntentService? –
音乐应用程序,我认为你必须使用服务,因为默认情况下,IntentService是不可取的,我认为,你必须绑定你的音乐应用程序与音乐服务开始,停止。如前所述,IntentService更适合“开始并忘记” – Premier
@Premier IntentService与Service.START_NOT_STICKY类似吗?根据你的例子,这也是“开始和忘记”。 –
差异
- 服务类使用应用程序的主线程,而IntentService创建工作线程,并使用该线程来运行服务。
- IntentService创建一个队列,每次将一个意图传递给onHandleIntent()。因此,应该通过直接扩展Service类来实现多线程。
- 服务类需要使用stopSelf()手动停止。同时,IntentService在队列中没有意图时会自动停止。
- IntentService实现了返回null的onBind()。这意味着IntentService不能默认绑定。
- IntentService实现了将Intent发送到队列和onHandleIntent()的onStartCommand()。
不服务也实现onStartCommand? –
Service
:工作在主线程所以它会在几秒钟后引起ANR(安卓无响应)。
IntentService
:Service
与另一个后台线程单独工作,以执行某些操作而不与主线程交互。
*服务:在主线程中工作,所以它会在几秒钟后导致ANR(Android Not Responding)。* - 我可以有一个服务运行几个小时,我从来没有见过一个ANR,所以我怀疑是真的。 –
意图服务IntentService的服务
孩子:如果你想使用您的应用开始下载一堆图像。这是一次性的过程,一旦下载完成,就可以自行清理。
服务:将不断用于在您的应用程序和后端与Web API调用之间进行通信的服务。即使是与目前的任务完成了,你还希望它是围绕着几分钟后,更多的通信
服务
- 任务没有用户界面,但不应该长期任务使用。通过
onStartService()
- 从任何线程触发使用服务内螺纹长期任务
- 调用
- 运行在主线程
- 可能会阻止
main(UI
)螺纹
IntentService
- 长期任务通常不会与主要的沟通如果需要的话通信则其由处理程序进行,或者经由意图
- 从主线程触发广播
- 调用读取(意图是在主螺纹和工作线程接收到spawed)
- 运行在独立的线程
- 我们无法并行运行任务,并且多个意图在同一个工作线程上排队。
服务
这是为大家服务的基类。扩展此类时,重要的是创建一个新线程来执行所有服务的工作,因为该服务默认使用应用程序的主线程,这可能会降低应用程序运行的任何活动的性能。
IntentService
这是使用工作线程来处理所有的请求开始,一次一个服务的一个子类。如果您不要求您的服务同时处理多个请求,则这是最佳选择。你所需要做的就是实现onHandleIntent(),它接收每个启动请求的意图,这样你就可以完成后台工作。
差异
服务类使用应用程序的主线程,而IntentService创建工作线程,并使用该线程来运行服务。 IntentService创建一个队列,每次将一个意图传递给onHandleIntent()。因此,应该通过直接扩展Service类来实现多线程。 服务类需要使用stopSelf()手动停止。同时,IntentService在队列中没有意图时会自动停止。 IntentService实现了返回null的onBind()。这意味着IntentService不能默认绑定。 IntentService实现了将Intent发送到队列和onHandleIntent()的onStartCommand()。
- 1. IntentService和HandlerThread有什么区别?
- 2. SVN服务器和HTTP服务器有什么区别
- 3. “Web服务”和“Web服务”有什么区别?
- 4. netflix zuul服务器和netflix eureka服务器有什么区别?
- 5. DDD服务和WCF服务有什么区别?
- 6. 安卓服务和网络服务有什么区别
- 7. ado.net数据服务和WCF数据服务有什么区别?
- 8. Web服务和Windows服务之间有什么区别?
- 9. WCF和RIA服务域服务类有什么区别?
- 10. Web服务器和游戏服务器有什么区别?
- 11. 代理服务器和普通服务器有什么区别?
- 12. 网络服务器和应用服务器有什么区别
- 13. 微服务与webservices有什么区别?
- 14. android:时间任务和服务有什么区别?
- 15. 应用服务,域名服务和基础设施服务有什么区别?
- 16. 微服务。服务注册表和服务发现有什么区别
- 17. AntCall和Ant任务有什么区别?
- 18. 有状态服务和状态感知服务有什么区别?
- 19. Web服务器组件和Web服务器有什么区别? - 没有框架
- 20. 有什么区别`和$(Bash中有什么区别?
- 21. Lucee - 服务器和Web管理页面有什么区别?
- 22. Web服务和Web应用程序有什么区别?
- 23. ria服务中的Query和Invoke有什么区别?
- 24. 分布式和分散式服务之间有什么区别?
- 25. wsgi,python_wsgi,wsgi服务器和mod_wsgi有什么区别?
- 26. PaaS和应用服务器托管有什么区别?
- 27. HTTP和HTTP REST服务有什么区别?
- 28. 网络服务和远程处理有什么区别?
- 29. 创建服务时,angular.Module.factory和angular.Module.service有什么区别?
http://techtej.blogspot.com.es/2011/03/android-thread-constructspart-4.html –
真的比较不错的位置: http://stackoverflow.com/questions/15524280/service-vs-intent-service – Moemars
请转到上面的链接,他们真的太好了..非常感谢他们...... –