我们每天都会遇到各种在后台运行的移动应用程序。此外,在许多应用程序中,某些活动是在不使用任何用户界面的情况下进行的,即工作是在后台进行的。例如,我们移动设备上的音乐应用程序或任何其他音乐应用程序都在后台运行,可以在使用音乐应用程序的同时正常使用任何其他程序。因此,服务或 IntentService 被用来实现这一功能。
在本文中,我们将探讨服务和 IntentService 之间的区别。不过,在进一步讨论之前,让我们再次回顾一下 Service 和 IntentService。
Android 中Service和IntentService的区别
Service | Intent Service |
---|---|
将 Service 视为一个 Android 组件,用于在后台执行各种长期运行的活动,例如在音乐应用程序中,我们在后台运行应用程序,同时使用其他移动应用程序。最棒的一点是,在后台执行的进程不需要用户界面。 | IntentService 的基类是服务。本质上,它遵循 “工作队列流程 “结构,由 IntentService 处理客户端的按需请求(表示为 Intents)。 |
通过使用 Service 还可以执行一些进程间通信(IPC)。可以在 Service 的帮助下并发执行许多操作,因为任何应用程序组件都可以启动一个 Service 并在后台运行。 | 当客户端提交请求时,服务就会启动,在处理完每一个 Intent 后,服务就会终止。 |
在这种情况下,用户永远不会知道程序后台发生了什么。 | 客户端可以使用 Context.startService 发出请求启动服务(Intent)。在这种情况下,会建立一个工作线程,所有请求都由工作线程处理,但每次只处理一个请求。 |
当一个或多个应用程序组件使用 bindService() 函数绑定服务时,该服务就被称为绑定服务。如果应用程序解除绑定,服务将被销毁。 | 服务可以从任何线程激活,但 IntentService 只能从主线程触发,这意味着 Intent 会先在主线程接收,然后再运行 Worker 线程。 |
由于任何应用程序组件都可以启动服务并在后台运行,可能会在服务的帮助下并发执行大量任务。 | 如果使用 IntentService,将很难与应用程序的用户界面进行交互。如果想在用户界面中显示 IntentService 的某些结果,就必须使用 Activity。 |
要启动服务,请使用 onStartService() 函数,但要启动 IntentService,请使用 Intent,即通过调用 Context.startService (Intent) 来启动 IntentService。 |
由于 Service 在主线程上运行,如果使用它,主线程有可能被停止。但 IntentService 不涉及主线程。作业是以队列形式完成的,即先到先得。 |
概括
在本文中,我们了解了 Android 的 Service 和 IntentService 之间的区别。我们还介绍了启动和终止 Service 和 IntentService 的多种方法。如果只需要在后台完成一些活动,你可以使用 Service;否则使用 IntentService。
Android 中Service和IntentService的区别
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Android 中Service和IntentService的区别
本文链接:https://www.vsdiffer.com/vs/service-vs-intentservice-in-android.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。