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 en ViewPager devuelve objeto vacío onResume
  • Después de cambiar la orientación de la pantalla, el diálogo aparece aparentemente sin ninguna llamada
  • Fragmento de Android OnCreateView llamado dos veces
  • Ejecutar Android App dos veces para trabajar, ¿por qué?
  • Get activityInfo metaData en el método onCreate
  • Android - Constructor de actividad vs onCreate
  • No puedo crear una base de datos SQLite en mi aplicación android
  • Super.onCreate (savedInstanceState);
  • ¿Cuándo se llama al método onCreate () de la aplicación?
  • Android onCreate se llama después de bloquear la pantalla
  • La aplicación se bloquea después de recibir una llamada telefónica
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.