Se ho il seguente codice:Cosa succede se un servizio viene avviato più volte?
Intent intent = new Intent(this,DownloadService.class);
for(int i=0;i<filesArray.length;i++){
startService(intent);
}
In questo codice DownloadService
estende IntentService
.
Così ora quando sto chiamando startService(intent)
vuol dire che sto iniziando un nuovo servizio ogni volta che viene chiamato startService(intent)
o Vuol dire che DownloadService
viene eseguito una volta e poi ogni volta che chiamo startService(intent)
sarà solo passare una diversa intento con un diverso ID iniziale.
Ha senso, e quale di questi è il caso?
Grazie. Inoltre, afferma: "Il metodo startService() restituisce immediatamente e il sistema Android chiama il metodo onStartCommand() del servizio.Se il servizio non è già in esecuzione, il sistema prima chiama onCreate(), quindi chiama onStartCommand()." Quindi se il servizio è già in esecuzione, il sistema salterà il metodo onCreate() e chiamerà solo onStartCommand() o cosa? – bytebiscuit
Non lo so, ma sono abbastanza sicuro che sia il caso (fa un sacco di problemi a non chiamare "onCreate()" se il servizio è già stato creato). Dovrebbe essere facile determinare se si inserisce un 'Log.i()' in entrambi i callback e controllare il LogCat. –
Ho appena fatto ... e stranamente inizia il onCreate dopo l'ultima chiamata startService() !!! – bytebiscuit