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?
- Obtención de MenuItem en onCreate
- Android: ¿Dónde poner el código onCreate () de la actividad en un fragmento?
- Cómo reiniciar la función onCreate
- Actividad OnCreate no activada
- SQLiteOpenHelper no puede llamar a onCreate?
- Android onCreate onResume
- Diferencia entre getExtras (nombre) .getString y getIntent (). GetStringExtra (nombre)
- Public onCreate (), o onCreate protegido ()?
- Iniciar una actividad con un parámetro
- Android: Dejar de recrear la actividad en el cambio de orientación
- OnCreate del proveedor de contenido
- ¿Cuáles son los diferentes métodos de ciclo de vida onCreate () y onCreateView () en Fragment?
- Puntero nulo Excepción - findViewById ()
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 elonCreate
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") {} }
- El proyecto no fue construido ya que su camino de construcción es incompleto
- Determinar cuándo un ViewPager cambia páginas