- sintassi:
<service android:description="string resource" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:foregroundServiceType=["camera" | "connectedDevice" | "dataSync" | "health" | "location" | "mediaPlayback" | "mediaProjection" | "microphone" | "phoneCall" | "remoteMessaging" | "shortService" | "specialUse" | "systemExempted"] android:icon="drawable resource" android:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </service>
- contenuto in:
<application>
- può contenere:
<intent-filter>
<meta-data>
- description:
- Dichiara un servizio, una sottoclasse
Service
, come uno dei componenti dell'applicazione. A differenza delle attività, i servizi non dispongono di un'interfaccia utente visiva. Vengono utilizzati per implementare in background a lunga esecuzione o un'API di comunicazione avanzata che può essere chiamata da altri diverse applicazioni.Tutti i servizi devono essere rappresentati da elementi
<service>
in del file manifest. Gli elementi che non sono stati dichiarati non vengono visualizzati. dal sistema e non vengono mai eseguiti.Nota: su Android 8.0 (livello API 26) e versioni successive, il sistema limita cosa può fare la tua app mentre è in esecuzione in background. Per ulteriori informazioni, consulta le guide che illustrano limiti di esecuzione in background e posizione in background limiti.
- attributi:
android:description
- Una stringa leggibile che descrive il servizio. La descrizione è impostata come riferimento a una risorsa stringa, in modo che possa essere localizzata come altre stringhe nell'interfaccia utente.
android:directBootAware
Se il servizio è consapevole di Direct Boot, ovvero se può essere eseguito prima che l'utente sblocchi il dispositivo.
Nota: durante Avvio diretto, un servizio l'applicazione può accedere soltanto ai dati archiviati spazio di archiviazione protetto dal dispositivo.
Il valore predefinito è
"false"
.android:enabled
- Indica se il sistema può creare un'istanza del servizio. È
"true"
se può esserlo e"false"
in caso contrario. Il valore predefinito è"true"
.L'elemento
<application>
ha il proprio Attributoenabled
che si applica a tutti componenti dell'applicazione, inclusi i servizi. La<application>
e<service>
devono essere entrambi"true"
, in quanto per abilitare il servizio, per impostazione predefinita. Se uno dei due è"false"
, il servizio è disabilitato e non è possibile creare un'istanza. android:exported
- Possibilità di richiamare i componenti di altre applicazioni
o interagire con il servizio. È
"true"
se può e"false"
in caso contrario. Quando il valore è"false"
, viene restituito della stessa applicazione o le stesse applicazioni con lo stesso ID utente possono avviare il servizio o associarvi.Il valore predefinito dipende dalla presenza o meno di filtri per intent nel servizio. La l'assenza di filtri significa che può essere richiamato solo specificando il nome esatto della classe. Ciò implica che il servizio è destinato solo per uso interno, perché gli altri non conoscono il nome della classe. Quindi, In questo caso, il valore predefinito è
"false"
. D'altra parte, la presenza di almeno un filtro implica che il servizio è destinato a un uso esterno, quindi il valore predefinito è"true"
.Questo attributo non è l'unico modo per limitare l'esposizione di un servizio ad altri diverse applicazioni. Puoi anche utilizzare un'autorizzazione per limitare le entità esterne che possono interagire con il servizio. Consulta
permission
. android:foregroundServiceType
Specifica che il servizio è una servizio in primo piano che soddisfa una caso d'uso specifico. Ad esempio, un tipo di servizio in primo piano
"location"
indica che un'app sta ricevendo lo stato attuale del dispositivo località, di solito a continua Un'azione avviata dall'utente correlata alla posizione del dispositivo.Puoi assegnare più tipi di servizi in primo piano a un determinato completamente gestito di Google Cloud.
android:icon
- Un'icona che rappresenta il servizio. Questo attributo è impostato come
riferimento a una risorsa drawable contenente la definizione dell'immagine.
Se non è impostata, viene visualizzata l'icona specificata per l'applicazione
viene usato nel suo insieme. Consulta
<application>
attributoicon
dell'elemento.L'icona del servizio, impostata qui o dal
<application>
è anche l'elemento icona predefinita per tutti i filtri per intent del servizio. Consulta le Di<intent-filter>
elemento Attributoicon
. android:isolatedProcess
- Se impostato su
"true"
, questo servizio viene eseguito in base a un processo speciale isolato dalla resto del sistema e non dispone di autorizzazioni proprie. L'unica comunicazione con questo strumento è tramite l'API del servizio, con associazione e avvio. android:label
- Un nome leggibile per il servizio.
Se questo attributo non è impostato, l'etichetta impostata per l'applicazione nel suo complesso è
al suo posto. Visualizza l'elemento
<application>
Attributolabel
.L'etichetta del servizio, impostata qui o dal
<application>
è anche l'elemento l'etichetta predefinita di tutti i filtri per intent del servizio. Consulta le Di<intent-filter>
elemento Attributolabel
.L'etichetta è impostata come riferimento a una risorsa stringa, in modo che può essere localizzata come altre stringhe nell'interfaccia utente. Tuttavia, per comodità durante lo sviluppo dell'applicazione, può anche essere impostato come stringa non elaborata.
android:name
- Il nome della sottoclasse
Service
che implementa il servizio. Si tratta del nome completo di una classe, come"com.example.project.RoomService"
. Tuttavia, per abbreviare, il primo carattere del nome è un punto, ad esempio".RoomService"
, questa viene aggiunta al nome del pacchetto specificato Elemento<manifest>
.Una volta pubblicata l'applicazione, non modificare questo nome, a meno che non imposti
android:exported="false"
.Non esiste un valore predefinito. È necessario specificare il nome.
android:permission
- Il nome di un'autorizzazione necessaria a un'entità per
avviare il servizio o eseguire l'associazione. Se un chiamante di
startService()
,bindService()
, oppurestopService()
non dispone di questa autorizzazione, il metodo non funziona e L'oggettoIntent
non viene consegnato al servizio.Se questo attributo non è impostato, l'autorizzazione impostata dal Di
<application>
elementopermission
si applica al servizio. Se non è impostato nessuno dei due attributi, il servizio non viene protetti da un'autorizzazione.Per ulteriori informazioni sulle autorizzazioni, consulta Autorizzazioni nella panoramica del file manifest dell'app Linee guida sulla sicurezza.
android:process
- Il nome del processo in cui viene eseguito il servizio. Generalmente,
tutti i componenti di un'applicazione vengono eseguiti nel processo predefinito creato
un'applicazione. Ha lo stesso nome del pacchetto dell'applicazione. La
Di
<application>
elementoprocess
può impostare un valore diverso predefinita per tutti i componenti. Ma un componente può sostituire il valore predefinito con il proprio attributoprocess
, che ti consente di diffondere un'applicazione in più processi.Se il nome assegnato a questo attributo inizia con i due punti (
:
), viene privato dell'applicazione, viene creato quando è necessario durante l'esecuzione del servizio.Se il nome del processo inizia con un carattere minuscolo, il servizio viene eseguito in un processo globale con questo nome, a condizione che sia autorizzato a farlo. Ciò consente ai componenti di applicazioni diverse di condividere un processo, e l'utilizzo delle risorse.
- vedi anche:
<application>
<activity>
- introdotto in:
- Livello API 1
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2024-08-22 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2024-08-22 UTC."],[],[]]