ContextWrapper.StartService(Intent) Metodo

Definizione

Richiedere l'avvio di un determinato servizio dell'applicazione.

[Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")]
public override Android.Content.ComponentName? StartService(Android.Content.Intent? service);
[<Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")>]
override this.StartService : Android.Content.Intent -> Android.Content.ComponentName

Parametri

service
Intent

Identifica il servizio da avviare. La finalità deve essere completamente esplicita (specificando un nome di componente) o specificare un nome di pacchetto specifico a cui è stato assegnato. I valori aggiuntivi possono essere inclusi negli extra finalità per fornire argomenti insieme a questa chiamata iniziale specifica.

Valori restituiti

Richiedere l'avvio di un determinato servizio dell'applicazione. La finalità deve contenere il nome completo della classe di un'implementazione del servizio specifica da avviare o un nome di pacchetto specifico da usare come destinazione. Se la finalità è meno specificata, registra un avviso. In questo caso è possibile usare uno dei più servizi corrispondenti. Se il servizio non è già in esecuzione, verrà creata un'istanza e avviata (se necessario verrà creato un processo); se è in esecuzione, rimane in esecuzione. Ogni chiamata a questo metodo comporterà una chiamata corrispondente al metodo Service.onStartCommand(Intent, int, int) del servizio di destinazione, con la finalità specificata qui. In questo modo è possibile inviare processi a un servizio senza dover associare e chiamare all'interfaccia. L'uso di startService() esegue l'override della durata del servizio predefinita gestita da bindService(Intent, BindServiceFlags, Executor, ServiceConnection): richiede che il servizio rimanga in esecuzione fino a quando non viene chiamato stopService(Intent), indipendentemente dal fatto che tutti i client siano connessi. Si noti che le chiamate a startService() non annidano: indipendentemente dal numero di chiamate startService(), una singola chiamata a stopService(Intent) lo arresterà. Il sistema tenta di mantenere i servizi in esecuzione il più possibile. L'unica volta che devono essere arrestati è se l'applicazione in primo piano corrente usa così tante risorse che il servizio deve essere terminato. Se si verificano errori nel processo del servizio, verrà riavviato automaticamente. Questa funzione genererà SecurityException se non si dispone dell'autorizzazione per avviare il servizio specificato. Nota: ogni chiamata a startService() comporta un lavoro significativo eseguito dal sistema per gestire il ciclo di vita del servizio che circonda l'elaborazione della finalità, che può richiedere più millisecondi di tempo della CPU. A causa di questo costo, startService() non deve essere usato per il recapito frequente delle finalità a un servizio e solo per la pianificazione di un lavoro significativo. Usare i servizi associati per le chiamate ad alta frequenza. A partire dalla versione sdk Build.VERSION_CODES. O , app destinate alla versione dell'SDK Build.VERSION_CODES. O o versione successiva non è consentito avviare i servizi in background. Per altri dettagli, vedere Limiti di esecuzione in background. Nota: a partire dalla versione dell'SDK Build.VERSION_CODES. S , app destinate alla versione dell'SDK Build.VERSION_CODES. S o versione successiva non possono avviare i servizi in primo piano in background. Per altri dettagli, vedi Modifiche al comportamento: app destinate ad Android 12. Finalità del servizio parametri: identifica il servizio da avviare. La finalità deve essere completamente esplicita (specificando un nome di componente). I valori aggiuntivi possono essere inclusi negli extra finalità per fornire argomenti insieme a questa chiamata iniziale specifica. Restituisce ComponentName Questo valore può essere null.

Attributi

Commenti

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

per android.content.ContextWrapper.startService(android.content.Intent).

Si applica a