L'application context è un elemento centrale e importante per tutte le funzionalità disponibili al più alto livello applicativo: possiamo utilizzare l'application context per accedere alle risorse e alle impostazioni condivise tra istanze di diverse Activity.
Una volta recuperato l'application context, ad esempio con il seguente codice:
Context context = getApplicationContext();
possiamo utilizzarlo per accedere ad un ampio insieme di caratteristiche e servizi a disposizione dell'applicazione Android. Ad esempio possiamo richiamare il metodo getSharedPreferences()
dell'application context per recuperare le preferenze condivide dell'applicazione, oppure possiamo richiamare il metodo getResources()
per recuperare le risorse dell'applicazione:
String hello = context.getResources().getString(R.string.hello);
Visto che la classe Activity
deriva dalla classe Context
possiamo utilizzare il riferimento this
oppure richiamare esplicitamente l'application context.
Potremmo dunque riscrivere l'esempio precedente come segue:
String hello = getResources().getString(R.string.hello);
L'application context lo utilizziamo anche per:
- Lanciare istanze di Activity.
- Gestire le directory, i database e i file protetti dell'applicazione.
- Richiamare i gestori di servizi di sistema (e.g. servizio di localizzazione).
- Applicare e controllare i permessi a livello applicativo.
- Richiamare gli asset dell'applicazione.
Oltre all'application context abbiamo a disposizione altre due opzioni per richiamare e lanciare istanze di Activity: implementare il lancio di una Activity nel file Manifest, oppure lanciare un'Activity figlia, da un'altra Activity padre per riceverne un risultato.