Cos'è il contesto, i metodi getapplicationcontext() in Android?
La documentazione Android sul contesto dice che è un
Interfaccia alle informazioni globali su un ambiente applicativo.
Quindi fondamentalmente questo è l'oggetto che Android run time consegna ad ogni = applicazione Android che viene avviata. Contiene tutte le informazioni globali che l'applicazione ha bisogno di conoscere - risorse di stringhe, risorse di immagini, componenti Android nell'applicazione (Activity Service, Broadcast Receiver & Content Provider).
Molti sviluppatori inesperti fanno l'errore di assumere che ci sia solo una singola istanza di questa classe - che porterà a perdite di memoria nell'applicazione Android.
Quando si fa getApplicationContext() si ottiene un oggetto Singleton Context. Ma quando fai getContext() non ottieni lo stesso contesto Singleton. Ogni attività ottiene la propria istanza di Context (basta stampare l'hashcode dell'oggetto context). Anche il servizio ottiene la propria istanza dell'oggetto Context.
Se non si presta attenzione a questi piccoli dettagli, si otterranno applicazioni Android con scarse prestazioni, che potrebbero addirittura schiacciarsi. Personalmente ritengo che questo sia il concetto più frainteso nello sviluppo di app Android.
Se volete maggiori dettagli su cosa porta alla perdita di memoria, come individuarla, perché accade e come evitarla, visitate pure questa serie di video.
Spero che questo aiuti.
Articoli simili
- Qual è la differenza tra contesto, contesto dell'attività e contesto dell'applicazione nella programmazione Android?
- Cos'è l'"unità nazionale" nel contesto della Nigeria?
- Cosa si intende per contesto in Android (in parole semplici) e ContextWrapper?
- Sono abbastanza bravo a scrivere battute divertenti ma non so come inserirle nel contesto. Come posso fare?