Android onCreate o onStartCommand para iniciar el servicio

Normalmente, cuando creo un servicio de Android, implemento el método onCreate , pero en mi último proyecto esto no funciona. He intentado implementar onStartCommand , y esto parece funcionar.

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

onCreate() se llama cuando el objeto Service es instanciado (es decir, cuando se crea el servicio). Debe hacer las cosas en este método que necesita hacer sólo una vez (es decir: inicializar algunas variables, etc.). onCreate() sólo se llamará una vez por objeto instanciado .

Sólo necesita implementar onCreate() si realmente desea / necesita inicializar algo solo una vez .

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

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

El servicio se comporta igual que la actividad Lo que usted quiera associate una vez con un servicio irá en el onCreate como la inicialización

Y siempre que el service se llama usando startService . onStartCommand llamará onStartCommand . Y puede pasar cualquier acción a realizar. Como para un reproductor de música, puede reproducir, pausar, detener el uso de la acción

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

onCreate trabajo como un constructor.

Editar en breve

onCreate() sólo se llama la primera vez que se inicia un Service mientras que onStartCommand() llama cada vez que se vuelve a llamar al startService . Le 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") {} } 
  • Fragmento de Android OnCreateView llamado dos veces
  • Android: servicio destruido cuando se gira la pantalla
  • Cómo reiniciar la función onCreate
  • Diferencia entre getExtras (nombre) .getString y getIntent (). GetStringExtra (nombre)
  • Las sentencias de registro no se llaman onCreate ()
  • Diferencia entre onCreate () y onStart ()?
  • Después de cambiar la orientación de la pantalla, el diálogo aparece aparentemente sin ninguna llamada
  • Efectos secundarios de llamar a Activity.setContentView () dos veces en una fila
  • Obtención de MenuItem en onCreate
  • Después de la rotación, onCreate () Fragmento se llama antes onCreate () FragmentActivity
  • Fragmento en ViewPager devuelve objeto vacío onResume
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.