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?

2 Solutions collect form web for “Android onCreate o onStartCommand para iniciar el servicio”

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") {} } 
  • ¿Se mantiene la intención de crear una actividad?
  • Android: servicio destruido cuando se gira la pantalla
  • SQLiteOpenHelper no puede llamar a onCreate?
  • Get activityInfo metaData en el método onCreate
  • Android - Actividad onCreate y Fragment onCreate
  • Fragmento de Android OnCreateView llamado dos veces
  • ¿Por qué se debe llamar OnCreate sólo una vez al inicio de la Actividad?
  • Las sentencias de registro no se llaman onCreate ()
  • OnCreate del proveedor de contenido
  • Fragmento en ViewPager devuelve objeto vacío onResume
  • Android SDK equivlent para viewWillAppear (iOS)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.