Autore Topic: Activity.context o getApplicationContext  (Letto 613 volte)

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Activity.context o getApplicationContext
« il: 27 Settembre 2012, 07:44:51 CEST »
0
Ho un dilemma atroce.
Nella mia app creo tante View in rumtime, ho creato il layout a "pezzi" e lo compongo. La scelta è dettata da motivi che non vi sto qui a spiegare.
Il dilemma è che context passare a queste view.

Ecco la logica

ActivityA
    ->onCreate
           ->setContentView (layout scheletro)
           - addView->Content (il content è un extends di RelativeLayoute faccio l' inflate cosi:
                             LayoutInflater layoutInflater = (LayoutInflater) contex.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                   view = layoutInflater.inflate(R.layout.content_homeactions, this);
                             ->all' interno di Content faccio una serie di addView di altrettanti Layout. (utilizzo <merge> per ridurre la complessità)

La domanda e il dubbio è quale Context passare al Content iniziale e di conseguenza alle view figlie. Il Context rimane nell' Activity stessa anche se in più classi.
In un articolo di Roman Guy si consiglia di utilizzare getApplicationContext perchè non legato all'activity ma al ciclo di vita dell' app.
L' articolo in questione è http://android-developers.blogspot.it/2009/01/avoiding-memory-leaks.html
Da una parte il getApplicationContext() non viene creato sempre ma sembra una sola volta ma ha lunga durata, e non si distrugge con il cambio Activity ma usando questo context il Garbage Collector riesce ad eliminare le classi delle View e l' Activity quando viene distrutta?


La domanda stupida è quella che non si fa