Video: Microsoft To-Do 2019 | Full Tour 2024
Un modo per avviare un'attività specifica nella tua app Android è con un contesto. Un contesto è un'interfaccia per le informazioni globali su un ambiente applicativo. "(Dice i documenti di Android.) Informalmente, un contesto è l'informazione di base che potresti voler sapere sulle cose che stanno realmente accadendo.
Per un'app Android, l'oggetto Context Java potrebbe includere il nome del pacchetto dell'app, il tema, lo sfondo, i nomi dei file associati all'app e i puntatori ai servizi di localizzazione, ai servizi dell'account utente e ad altre informazioni. Tutto questo materiale è disponibile in modo programmatico tramite un oggetto contesto Java.
La parola descrive in modo programmatico qualcosa a cui è possibile accedere (e magari persino modificare) nel codice Java del proprio progetto.
Un'attività Android viene eseguita in un determinato contesto. Ciò ha senso. Ma ecco un'idea difficile da abbracciare: un'attività è un contesto. È un contesto per due motivi (uno è tecnico, l'altro è in qualche modo intuitivo):
Nell'SDK Android, l'androide di classe. app. L'attività è una sottoclasse di Android. soddisfare. Contesto.
Un'attività ha tutte le cose che ogni contesto ha - vale a dire, il nome del pacchetto dell'app, il tema, lo sfondo, i nomi dei file associati all'app e i puntatori ai servizi di localizzazione, all'utente account e altre informazioni.
Nel codice sottostante, un'attività chiama un'altra attività all'interno della stessa applicazione.
pacchetto mio. confezione; importa Android. app. Attività; importa Android. os. Bundle; public class SomeActivity estende Activity {// … il codice di qualche tipo appartiene qui Intent intent = new Intent (this, OtherActivity. class); startActivity (intent);}
In questo codice, le ultime due affermazioni stanno veramente dicendo: "Con il contesto proprio di questa attività, avvia l'esecuzione di un'istanza di OtherActivity. "(Se tutto va bene, la classe OtherActivity estende la classe Activity di Android, e sei a posto.)
Nell'esempio, il costruttore della classe Intent prende due parametri: un contesto e una classe Java. La parola rappresenta l'istanza SomeActivity che la include. Va bene, perché il primo parametro del costruttore è di tipo Context e la classe Activity di Android è una sottoclasse della classe Context astratta.
Nel codice di esempio sopra, il costruttore Intent ottiene il nome del pacchetto OtherActivity da questo - il contesto dell'oggetto SomeActivity.
Ogni attività fa parte di un'applicazione e un'istanza dell'applicazione è anche un contesto.Pertanto, in molti programmi, è possibile utilizzare una delle seguenti chiamate di metodo (anziché questa) per ottenere un'istanza Context:
getContext () getApplicationContext () getBaseContext ()
I metodi getApplicationContext e getBaseContext hanno usi limitati e specializzati nei programmi Android.
Nel codice sottostante, un'attività da una app utilizza un contesto per chiamare l'attività di un'altra app.
pacchetto mio. confezione; importa Android. app. Attività; importa Android. os. Bundle; public class SomeActivity estende Activity {// … il codice di qualche tipo appartiene qui try {otherContext = createPackageContext ("other. pack", Context. CONTEXT_IGNORE_SECURITY | Context. CONTEXT_INCLUDE_CODE);} catch (NameNotFoundException e) {e. printStackTrace ();} Class otherClass = null; prova {otherClass = otherContext. getClassLoader (). loadClass ("other. pack. OtherAppActivity");} catch (ClassNotFoundException e) {e. printStackTrace ();} Intent intent = new Intent (otherContext, otherClass); startActivity (intent);}
Il secondo set di codice è più complicato del primo esempio che vedi qui. Ma la maggior parte della complessità deriva dal modo in cui Java carica le classi. In un modo o nell'altro, questo codice crea un intento da un contesto e da un nome di classe, quindi avvia l'attività dell'intento.