programacion - manual android studio avanzado
Android onCreate o onStartCommand para iniciar el servicio (2)
El servicio se comporta de la misma manera que la actividad Lo que quieras
associate
una vez con un servicio entrará enonCreate
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")
{}
}
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.