Si tengo el siguiente código:¿Qué sucede si un servicio se inicia varias veces?
Intent intent = new Intent(this,DownloadService.class);
for(int i=0;i<filesArray.length;i++){
startService(intent);
}
En este código se extiende DownloadService
IntentService
.
Así que ahora cuando estoy llamando startService(intent)
¿quiere decir que estoy empezando un nuevo servicio cada vez que se llama startService(intent)
o ¿quiere decir que DownloadService
se ejecuta una vez y luego cada vez que llamo startService(intent)
se acaba de aprobar una diferente intento con un ID de inicio diferente.
¿Tiene esto sentido, y cuál de estos es el caso?
Gracias. También dice allí: "El método startService() regresa inmediatamente y el sistema Android llama al método onStartCommand() del servicio. Si el servicio no se está ejecutando, el sistema llama primero aCreate(), luego llama a StartAdmand()." Entonces, si el servicio ya se está ejecutando, el sistema omitirá el método onCreate() y llamará solo a OnStartCommand() o qué? – bytebiscuit
Realmente no lo sé, pero estoy bastante seguro de que ese es el caso (tiene mucho sentido de no llamar a 'onCreate()' si el servicio ya está creado). Debería ser fácil determinar si coloca 'Log.i()' en ambas devoluciones de llamada y verifica el LogCat. –
Acabo de hacer eso ... y, curiosamente, inicia el onCreate después de la última llamada startService() !!! – bytebiscuit