QNA > Q > Qual È La Differenza Tra Contesto, Contesto Dell'attività E Contesto Dell'applicazione Nella Programmazione Android?

Qual è la differenza tra contesto, contesto dell'attività e contesto dell'applicazione nella programmazione Android?

Differenza tra contesto, contesto dell'attività e contesto dell'applicazione nella programmazione Android

Hm....

Alcuni fatti in anticipo

  1. Context è una classe astratta (ciò significa che non si può istanziare direttamente).
  2. Loro (Application Context, Activity, Service) sono tutte sottoclassi della classe ContextWrapper
    1. Ma ContextWrapper è solo una classe adattatore per Context - non l'implementazione effettiva
  3. Android fornisce l'oggetto implementato effettivo all'app - questa classe è chiamata AndroidImpl
  4. ContextWrapper delega tutte le chiamate di metodo a questa istanza AndroidImpl
  5. Il contesto che si ottiene quando si invoca getApplicationContext() è Singleton Context per l'applicazione
  6. Activity e Servizi stessi sono sottoclassi di Context
  7. Activity e Servizi ottengono la propria istanza dell'oggetto Context (Sì, avete letto bene)

Quindi questo dimostra che tutti i contesti non sono uguali e non sono uguali. E se non si presta attenzione a questo, ci si troverà in grossi guai. Finirete per creare perdite di memoria che causano scarse prestazioni delle applicazioni. Quindi dovete essere consapevoli di dove usare quale contesto. Non si può e non si deve usare getApplicationContext ovunque e allo stesso modo non si deve usare "this" o "MainAcitivity.this" ovunque.

Se volete un'analisi molto più dettagliata del perché avviene la perdita di memoria, come l'uso sbagliato del contesto è legato a questo, come rilevare le perdite di memoria e infine come codificare un'applicazione Android evitando le perdite di memoria allora sentitevi liberi di visitare la playlist sotto menzionata sul mio canale YouTube.

Di Gregg

Quanta acqua è necessaria per irrigare un campo da cricket? :: Qual è il costo dell'installazione di campi da calcio artificiali in India?
Link utili