据我所知,Android服务只不过是一个包装器,分别是一个线程的管理器。在应用程序的主线程(也恰好管理UI调用)的上下文中运行时,无法执行任何冗长的操作。
如果Application类基本上涵盖相同的功能(https://stackoverflow.com/a/31490935)
,有人可以了解服务的目的吗?答案 0 :(得分:2)
一个Android服务,它只不过是一个包装器,分别是一个线程的管理器。
没有。默认情况下,服务没有单独的线程。服务可以创建线程(通常也可以),一些特定的Service
子类默认创建线程(例如IntentService
)。
Application类基本上会涵盖相同的功能
Application
类不包含相同的功能,只不过AnonymousCoward
类。 Application
实例也不会创建线程。任何类型的线程管理器(例如,ThreadPoolExecutor
)可能由服务使用,但不替换服务。
引用myself:
主要是,服务作为操作系统的标志存在,表明您正在积极地为用户提供价值,因此Android应该在系统RAM不足时终止其他进程 - 而不是您的进程。其次,服务为IPC提供了几个API:“命令”模式(
Intent
和startService()
)和“绑定”模式(bindService()
)。
应用程序中始终存在Application
(启动进程时会创建实例)。它不会作为操作系统的任何标志来表示流程重要性,也不具有任何IPC功能。
答案 1 :(得分:0)
默认情况下,服务在主线程中运行,但您也可以在不同的线程中运行它。它也有自己的生命周期,它既可以在启动状态也可以在绑定状态下运行。 因此,如果服务在后台线程中运行,则服务对于执行长时间运行任务很有用。
服务不是线程的包装器。它有一个适当的生命周期方法。
答案 2 :(得分:-1)
根据我的理解,Android Service
的好处是你可以运行一个与Application
整体分开的线程。这样,即使Service
未运行,您也可以继续Application
的操作。