2013-07-29 5 views
66

In un'applicazione Android, esiste un modo per ottenere il contesto in Android in una classe di non attività se il nome della classe di attività è noto?get Contesto in classe non di attività

+1

passare il contesto di ur dell'attività corrente al costruttore della classe java ... – user1969053

+0

Se la classe non-attività è una 'Fragment', vedere http://stackoverflow.com/domande/8215308/con-contesto-in-a-frammento. – dinosaur

+0

Se si desidera evitare il passaggio del contesto, quindi creare una classe che estende la classe Application e all'interno di tale definizione: Context AppContext statico privato; e su onCreate() {this.appContext = getApplicationContext();}, e rendere pubblico static Context getContext() {return appContext;} metodo che restituirà il contesto dell'applicazione e userà nella classe onActivity. –

risposta

105

Se la classe è classe non-attività, e la creazione di un'istanza dalla activiy, si può passare un'istanza di contesto tramite costruttore della successiva come segue:

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; 
} 

} 

È possibile creare un'istanza di questa classe dalle attività come segue:

new YourNonActivityClass(this); 
+4

Cosa succede se ho un'istanza statica della mia classe, lì ho un problema con i contesti statici. Cosa dovrei fare ' –

+0

quindi essere pronto per la perdita di memoria –