getApplicationContext (), getBaseContext (), getApplication (), getParent ()


Risposte:


33

getApplicationContext() Il contesto dell'applicazione è associato all'applicazione e sarà sempre lo stesso per tutto il ciclo di vita.

getBasecontext()non dovrebbe essere usato, basta usarlo al Contextposto di quello che è associato all'attività e può essere distrutto quando l'attività viene distrutta.


16
che dire di getApplication () e getParent ()
Nikunj Patel

107

getApplicationContext () Il contesto dell'applicazione è associato all'Applicaition e sarà sempre lo stesso per tutto il ciclo di vita.

getBasecontext () non dovrebbe essere usato, usa semplicemente Context invece di esso che è associato all'attività e potrebbe essere distrutto quando l'attività viene distrutta.

getApplication () è disponibile solo per Activity and Services. Sebbene nelle attuali implementazioni di attività e servizi Android, getApplication () e getApplicationContext () restituiscano lo stesso oggetto, non vi è alcuna garanzia che ciò sarà sempre il caso (ad esempio, in un'implementazione di un fornitore specifico). Quindi, se vuoi la classe Application che hai registrato nel Manifest, non dovresti mai chiamare getApplicationContext () e trasmetterla alla tua applicazione, perché potrebbe non essere l'istanza dell'applicazione (che ovviamente hai sperimentato con il framework di test).

getParent () restituisce l'oggetto dell'attività se la vista corrente è figlia. In altre parole, restituisce l'oggetto attività che ospita la vista figlia quando viene chiamato all'interno del figlio.


16
Come hai detto, non dovremmo usare getBaseContext (), se non è così importante, allora perché è nella codifica e quali sono i suoi principali vantaggi. per favore elaborami al riguardo
Pir Fahim Shah

getBaseContext () dovrebbe essere utilizzato in situazioni molto specifiche. C'è un'ottima spiegazione qui - medium.com/@ali.muzaffar/…
lomza
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.