¿Por qué necesitamos un servicio cuando todo se puede hacer mediante un hilo de fondo en Android?

Un servicio es un componente de Android que extiende un contexto , lo que significa que puede iniciar o detener un servicio desde otros componentes (dentro de su propia aplicación o externamente, si el servicio se exporta).

Un subproceso de fondo no puede iniciarse por sí mismo. Debe iniciarse desde un proceso, y en las aplicaciones de Android puede iniciar un proceso generalmente cuando inicia un componente con una intención. (Esta no es una explicación técnicamente sólida, pero tampoco es un stackoverflow, por lo que esto lo explica ampliamente)

Además, los servicios (a menos que sea un IntentService) no se ejecutan en segundo plano. Un servicio se ejecuta en el mismo subproceso desde el que se inició (lo que significa que un servicio se ejecuta en el subproceso de interfaz de usuario si se inició desde una Actividad).

Para trabajar realmente en un subproceso en segundo plano en un servicio, debe realizar manualmente Thread t = new Thread () y ejecutar un ejecutable en ese hilo.

Es porque, tan pronto como se destruye la actividad, también se destruye un hilo. Pero los servicios se ejecutan en segundo plano incluso después de que su actividad se destruye.