Android onCreate o onStartCommand para iniciar el servicio

Por lo general, cuando creo un servicio de Android, implemento el método onCreate , pero en mi último proyecto, esto no funciona. Intenté implementar onStartCommand , y parece que funciona.

La pregunta es: cuando tengo que implementar un servicio, ¿qué método se requiere? ¿Qué métodos tengo que implementar? onCreate , onStartCommand , o ambos? ¿Y cuál es el papel de cada uno?

se llama a onCreate() cuando el objeto de Service se instancia (es decir, cuando se crea el servicio). Debería hacer las cosas en este método que necesita hacer solo una vez (es decir, inicializar algunas variables, etc.). onCreate() solo se llamará una vez por objeto instanciado .

Solo necesita implementar onCreate() si realmente desea / necesita inicializar algo solo una vez .

se llama a onStartCommand() cada vez que un cliente inicia el servicio utilizando startService(Intent intent) . Esto significa que onStartCommand() puede ser llamado varias veces. Debe hacer las cosas con este método que se necesitan cada vez que un cliente solicita algo de su servicio. Esto depende mucho de lo que hace su servicio y cómo se comunica con los clientes (y viceversa).

Si no implementa onStartCommand() entonces no podrá obtener ninguna información del Intent que el cliente onStartCommand() a onStartCommand() y su servicio podría no ser capaz de realizar ningún trabajo útil.

El servicio se comporta de la misma manera que la actividad Lo que quieras associate una vez con un servicio entrará en onCreate como inicialización

y siempre service se llame al service usando startService . onStartCommand será llamado. y puedes pasar cualquier acción para realizar. como para un reproductor de música, puedes jugar, pausar, dejar de usar acción

Y realiza cualquier operation in service enviando una acción y recibiéndola en onStartCommand

onCreate funciona como un Constructor.

Editar en corto

onCreate() llama solo la primera vez que inicia un Service mientras que onStartCommand() llama cada vez que llama al startService nuevamente. Te permite establecer una acción como reproducir, detener, pausar música.

 public void onStartCommand() { if(intent.getAction.equals("any.play") { //play song } else if(intent.getAction.equals("any.stop") {} }