当前位置: 首页 > 知识库问答 >
问题:

Android中的service和intentService有什么区别?[副本]

骆磊
2023-03-14

Android中的serviceintentservice有什么区别?

共有1个答案

姜淇
2023-03-14

1.Service和IntentService之间的区别

Service:它是Android服务的基类,您可以扩展它来创建任何服务。由于服务是在UI线程内部运行的,它要求您创建一个工作线程来执行它的工作。

IntentService:它是service的子类,可以简化您的工作。它已经在一个工作线程中工作,并且可以接收异步请求。因此,您不需要手动创建它,也不需要担心同步问题。您可以简单地扩展它并重写该方法:

onHandleIntent(Intent intent)
  • 创建默认工作线程,该工作线程执行传递给OnStartCommand()的所有意图,而不是应用程序的主线程。
  • 创建一个工作队列,每次将一个意图传递给onHandleIntent()实现,因此您不必担心多线程问题。
  • 在处理完所有启动请求后停止服务,因此您不必调用stopself()
  • 提供onbind()的默认实现,该实现返回NULL。
  • 提供OnStartCommand()的默认实现,它将意图发送到工作队列,然后发送到您的OnHandleIntent()实现。

因此,如果需要更多的控制,可以使用service类,但对于简单的服务,最好的解决方案通常是intentservice

2.AsyncTask和Service的区别

服务:可以作为没有接口的活动。它适用于长时间运行的操作。

AsyncTask:是一个封装工作线程(执行后台操作)的特定类,便于与UI线程的交互,而无需直接管理线程或处理程序。

 类似资料:
  • 本文向大家介绍深入剖析Android系统中Service和IntentService的区别,包括了深入剖析Android系统中Service和IntentService的区别的使用技巧和注意事项,需要的朋友参考一下 Android中的Service是用于后台服务的,当应用程序被挂到后台的时候,问了保证应用某些组件仍然可以工作而引入了Service这个概念,那么这里面要强调的是Service不是独立

  • Java的和有什么区别?

  • 返回此枚举常量的名称,与在其枚举声明中声明的名称完全相同。大多数程序员应该使用toString方法而不是这个方法,因为toString方法可能返回一个用户更友好的名称。此方法主要是为在特定情况下使用而设计的,在特定情况下,正确与否取决于获得准确的名称,而准确的名称不会因发布而异。 特别是,即使文档中说更喜欢,Java自己的StandardLocation枚举使用了而我认为文档中的建议是相反的。 此

  • 问题内容: 和释可以在Spring中互换使用吗,或者除了用作注释设备之外,它们还提供任何特定功能吗? 换句话说,如果我有一个Service类,并且将注释从更改为,它的行为是否仍将相同? 还是注释也会影响类的行为和功能? 问题答案: 本文向大家介绍Spring中的@ Component,@ Repository和@Service批注有什么区别?相关面试题,主要包含被问及Spring中的@ Compo

  • Java的(“A”)和“A”有什么区别? 为什么下面的两行给出的结果是一样的?它们之间有什么区别吗?