Android中的Service
和IntentService
有什么区别?
Android中的AsyncTask
和IntentService
有什么区别?
答案 0 :(得分:35)
<强> 1。服务和IntentService之间的区别
服务:它是Android服务的基类,您可以扩展以创建任何服务。 由于服务在UI线程内运行,因此需要您创建一个工作线程来执行其工作。
IntentService :它是Service
的子类,可以简化您的工作。它已经在一个工作线程中工作,并且可以接收异步请求。因此,您不需要手动创建它,也不用担心同步。您可以简单地扩展它并覆盖方法:
onHandleIntent(Intent intent)
您可以在其中管理所有传入的请求。
看一下documentation,您可以详细了解IntentService
为您做的事情:
onStartCommand()
的意图。onHandleIntent()
实现,因此您永远不必担心多线程。stopSelf()
。onBind()
的默认实现。onStartCommand()
的默认实施,将意图发送到工作队列,然后发送到onHandleIntent()
实施。因此,如果您需要更多控制权,可以使用Service
类,但通常对于简单服务,最佳解决方案是IntentService
。
<强> 2。 AsyncTask和Service之间的区别
它们是两个不同的概念。
服务可以作为没有界面的活动。它适用于长期运行。
AsyncTask:是一个特定的类,它包装一个工作线程(执行后台操作),促进与UI线程的交互,而无需直接管理线程或处理程序。
答案 1 :(得分:0)
简而言之,服务是开发人员设置后台操作的更广泛的实现,而IntentService对于“即发即弃”操作非常有用,负责后台线程的创建和清理。
来自文档:
服务服务是一个应用程序组件,表示应用程序希望在不与用户交互的情况下执行较长时间运行的操作,或者为其他应用程序提供要使用的功能。
IntentService IntentService是服务的基类,可根据需要处理异步请求(表示为Intents)。客户端通过startService(Intent)调用发送请求;服务根据需要启动,使用工作线程依次处理每个Intent,并在工作失败时自行停止。
What is the difference between an IntentService and a Service?