- :
<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>
- contenute 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 hanno un'interfaccia utente visiva. Sono utilizzati per implementare operazioni in background a lunga esecuzione o un'API di comunicazione avanzata che può essere chiamata da altre applicazioni.Tutti i servizi devono essere rappresentati da elementi
<service>
nel file manifest. Quelle non dichiarate non vengono rilevate dal sistema e non vengono mai eseguite.Nota:su Android 8.0 (livello API 26) e versioni successive, il sistema limita le operazioni eseguibili in background dalla tua app. Per maggiori informazioni, consulta le guide che trattano i limiti delle esecuzioni in background e i limiti delle località in background.
- :
android:description
- Una stringa leggibile dall'utente 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 è responsabile dell'avvio diretto, ovvero se può essere eseguito prima che l'utente sblocchi il dispositivo.
Nota : durante l'avvio diretto, un servizio nella tua applicazione può accedere soltanto ai dati archiviati nello 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ò essere e"false"
in caso contrario. Il valore predefinito è"true"
.L'elemento
<application>
ha il proprio attributoenabled
che si applica a tutti i componenti dell'applicazione, inclusi i servizi. Per poter abilitare il servizio, gli attributi<application>
e<service>
devono essere entrambi"true"
perché sono entrambi per impostazione predefinita. Se uno dei due è"false"
, il servizio è disabilitato e non è possibile creare un'istanza. android:exported
- Indica se i componenti di altre applicazioni possono
chiamare o interagire con il servizio. Sono
"true"
se possono e"false"
in caso contrario. Quando il valore è"false"
, solo i componenti delle stesse applicazioni o applicazioni con lo stesso ID utente possono avviare il servizio o associarsi a questo servizio.Il valore predefinito dipende dalla presenza o meno di filtri per intent nel servizio. L'assenza di filtri significa che può essere richiamato solo specificando il nome esatto della classe. Ciò implica che il servizio è destinato solo all'uso interno all'applicazione, poiché gli altri utenti non conoscono il nome della classe. Quindi, in questo caso, il valore predefinito è
"false"
. La presenza di almeno un filtro, invece, implica che il servizio è destinato all'uso esterno, pertanto il valore predefinito è"true"
.Questo attributo non è l'unico modo per limitare l'esposizione di un servizio ad altre applicazioni. Puoi utilizzare un'autorizzazione anche per limitare le entità esterne che possono interagire con il servizio. Vedi l'attributo
permission
. android:foregroundServiceType
Specifica che il servizio è un servizio in primo piano che soddisfa un determinato caso d'uso. Ad esempio, un tipo di servizio in primo piano
"location"
indica che un'app riceve la posizione attuale del dispositivo, in genere per continuare un'azione avviata dall'utente relativa alla posizione del dispositivo.Puoi assegnare più tipi di servizi in primo piano a un servizio specifico.
android:icon
- Icona che rappresenta il servizio. Questo attributo è impostato come riferimento a una risorsa disegnabile contenente la definizione dell'immagine.
Se non è impostata, viene utilizzata l'icona specificata per l'applicazione nel suo insieme. Controlla l'attributo
icon
dell'elemento<application>
.L'icona del servizio, impostata qui o dall'elemento
<application>
, è anche l'icona predefinita per tutti i filtri per intent del servizio. Visualizza l'attributoicon
dell'elemento<intent-filter>
. android:isolatedProcess
- Se è impostato su
"true"
, il servizio viene eseguito in un processo speciale isolato dal resto del sistema e non ha autorizzazioni proprie. L'unica comunicazione con questo strumento è tramite l'API Service, con associazione e avvio. android:label
- Un nome leggibile per il servizio.
Se questo attributo non è impostato, viene utilizzata l'etichetta impostata per l'applicazione nel suo complesso. Controlla l'attributo
label
dell'elemento<application>
.L'etichetta del servizio, impostata qui o dall'elemento
<application>
, è anche l'etichetta predefinita per tutti i filtri per intent del servizio. Visualizza l'attributolabel
dell'elemento<intent-filter>
.L'etichetta è impostata come riferimento a una risorsa stringa, in modo che possa essere localizzata come altre stringhe nell'interfaccia utente. Tuttavia, per praticità, durante lo sviluppo dell'applicazione, puoi anche impostarla come stringa non elaborata.
android:name
- Il nome della sottoclasse
Service
che implementa il servizio. Questo è un nome completo della classe, come"com.example.project.RoomService"
. Tuttavia, se il primo carattere del nome è un punto, ad esempio".RoomService"
, questo viene aggiunto al nome del pacchetto specificato nell'elemento<manifest>
.Una volta pubblicata l'applicazione, non modificare questo nome a meno che non imposti
android:exported="false"
.Non esiste un'impostazione predefinita. È necessario specificare il nome.
android:permission
- Il nome di un'autorizzazione necessaria a un'entità per
avviare il servizio o associarlo. Se al chiamante di
startService()
,bindService()
ostopService()
non viene concessa questa autorizzazione, il metodo non funziona e l'oggettoIntent
non viene consegnato al servizio.Se questo attributo non è impostato, l'autorizzazione impostata dall'attributo
permission
dell'elemento<application>
si applica al servizio. Se nessuno dei due attributi è impostato, il servizio non è protetto da un'autorizzazione.Per ulteriori informazioni sulle autorizzazioni, consulta la sezione Autorizzazioni nella panoramica del file manifest dell'app e le Linee guida per la sicurezza.
android:process
- Il nome del processo in cui viene eseguito il servizio. Normalmente, tutti i componenti di un'applicazione vengono eseguiti nel processo predefinito creato per l'applicazione. Ha lo stesso nome del pacchetto dell'applicazione. L'attributo
process
dell'elemento<application>
può impostare un valore predefinito diverso per tutti i componenti. Tuttavia, un componente può eseguire l'override del valore predefinito con il proprio attributoprocess
, in modo da distribuire l'applicazione su più processi.Se il nome assegnato a questo attributo inizia con i due punti (
:
), un nuovo processo, privato per l'applicazione, viene creato quando è necessario e il servizio viene eseguito in quel processo.Se il nome del processo inizia con un carattere minuscolo, il servizio viene eseguito in un processo globale con quel nome, a condizione che disponga dell'autorizzazione necessaria. In questo modo i componenti di applicazioni diverse possono condividere un processo, riducendo 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-01-16 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Mancano le informazioni di cui ho bisogno"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Troppo complicato/troppi passaggi"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Obsoleti"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema di traduzione"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problema relativo a esempi/codice"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Altra"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Facile da capire"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Il problema è stato risolto"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Altra"
}]