你能帮我理解 IntentService
和 Service
之间的区别吗?
你能帮我理解 IntentService
和 Service
之间的区别吗?
Service
是服务实现的一个基类。Service
运行在应用程序的主线程上,这可能会降低应用程序的性能。因此,直接继承自Service
的IntentService
可用于简化事情。
IntentService
用于在后台执行某个任务。一旦完成,IntentService
实例会自动终止。它的使用示例包括从Internet下载某些资源。
区别
Service
类使用应用程序的主线程,而IntentService
创建一个工作线程并使用该线程运行服务。IntentService
创建一个队列,每次将一个intent传递给onHandleIntent()
。因此,通过直接扩展Service
类来实现多线程。IntentService
实现了返回null
的onBind()
。这意味着默认情况下无法绑定IntentService
。IntentService
实现了发送Intent到队列和到onHandleIntent()
的onStartCommand()
。简而言之,使用IntentService
只需要做两件事。首先,实现构造函数。其次,实现onHandleIntent()
。对于其他回调方法,需要调用super以便能够正确跟踪。
IntentService
不能从任何组件绑定吗? - Kushal服务: 它在您的系统后台运行。例如,
后台进程: 厨师制作汤
IntentService:它是一个连续的服务...(即)当你同时向服务员订购多个食品项目时,服务员会逐个交付这些项目,而不是一次性交付它们。
服务(service)
不在后台运行,而是在前台运行。 - krtkush请查看Tejas Lagvankar有关此主题的文章。 以下是Service、IntentService和其他组件之间的一些关键区别。
服务(Service)
onStartService()
调用main(UI)
线程意图服务(IntentService)
Service
实际上在你的应用程序相同的线程上运行;当你扩展Service
时,你必须手动生成新线程来运行CPU阻塞操作。
IntentService
是Service
的子类,它会生成一个线程来从那里执行后台工作(无需创建新线程来执行CPU阻塞操作)。
Service
: 运行于主线程,因此在几秒钟后会导致ANR(Android Not Responding)。
IntentService
: 具有另一个后台线程工作的Service
,可独立执行某些操作而不与主线程交互。
IntentService是Service的子类。
如果你想在打开应用程序时下载一堆图片,那么可以使用IntentService。这是一个一次性的过程,一旦所有内容都被下载完成,它就会自动清理自己。
Service是一个服务,用于通过Web API调用在你的应用程序和后端之间进行持续通信。即使它完成了当前的任务,你仍希望它在几分钟后继续存在,以进行更多的通信。