有什么区别Service
and an IntentService
在安卓中?
有什么区别AsyncTask
and an IntentService
在安卓中?
1.Service和IntentService的区别
Service:它是 Android 服务的基类,您可以扩展它来创建任何服务。
由于该服务在 UI 线程内运行,因此需要您创建一个工作线程来执行其工作。
意向服务: 它是一个子类Service
,这简化了您的工作。它已经在工作线程中工作,并且可以接收异步请求。因此,您无需手动创建它,也无需担心同步问题。您可以简单地扩展它并重写该方法:
onHandleIntent(Intent intent)
您可以在其中管理所有传入请求。
看看文档 http://developer.android.com/guide/components/services.html#ExtendingIntentService,您可以详细查看IntentService
为你做:
- 创建一个默认工作线程,执行传递给的所有意图
onStartCommand()
与应用程序的主线程分开。
- 创建一个工作队列,一次将一个意图传递给您
onHandleIntent()
实现,所以你永远不必担心多线程。
- 处理完所有启动请求后停止服务,因此您无需调用
stopSelf()
.
- 提供默认实现
onBind()
返回 null。
- 提供默认实现
onStartCommand()
将意图发送到工作队列,然后发送到您的onHandleIntent()
执行。
因此,如果您需要更多控制,可以使用Service
类,但通常对于简单的服务,最好的解决方案是IntentService
.
2.AsyncTask和Service的区别
它们是两个不同的概念。
Service:可以用作没有界面的活动。它适合长时间运行的操作。
异步任务:是一个特殊的类,它包装了工作线程(执行后台操作),促进与 UI 线程的交互,而无需直接管理线程或处理程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)