2013-07-29 12 views
66

W aplikacji dla systemu Android jest jakiś sposób, aby uzyskać kontekst w Androidzie w klasie innej niż działalność, jeśli nazwa klasy działalności jest znana?uzyskać Kontekst w klasie innej niż aktywność

+1

przekazać kontekst ur bieżącej działalności do konstruktora klasy java ... – user1969053

+0

Jeśli klasa nie aktywność jest 'Fragment' patrz http://stackoverflow.com/questions/8215308/using-context-in-a-fragment. – dinosaur

+0

Aby uniknąć przechodzenia kontekstu, należy utworzyć klasę rozszerzającą klasę aplikacji, a wewnątrz zdefiniować - prywatną statyczną aplikację kontekstowąContext; oraz on onCreate() {this.appContext = getApplicationContext();} i upublicznij statyczną metodę ContConturConContact() {return appContext;}, która zwróci kontekst aplikacji i użyje go w klasie onActivity. –

Odpowiedz

105

Jeśli klasa jest klasa non-aktywność i tworząc instancję to z activiy, można przekazać instancję kontekście poprzez konstruktor później następująco:

class YourNonActivityClass{ 

// variable to hold context 
private Context context; 

//save the context recievied via constructor in a local variable 

public YourNonActivityClass(Context context){ 
    this.context=context; 
} 

} 

Można utworzyć instancję ta klasa z działalności w następujący sposób:

new YourNonActivityClass(this); 
+4

Co jeśli mam statyczną instancję mojej klasy, tam mam problem z kontekstami statycznymi. Co powinienem zrobić " –

+0

, a następnie przygotuj się na wyciek pamięci –

Powiązane problemy