In einer Android-Anwendung gibt es eine Möglichkeit, den Kontext in Android in einer Nicht-Aktivität-Klasse zu erhalten, wenn der Name der Aktivität Klasse bekannt ist? wie folgtget Kontext in Nicht-Aktivität-Klasse
66
A
Antwort
105
Wenn Ihre Klasse nicht-Aktivitätsklasse ist, und eine Instanz davon aus der activiy erstellen, können Sie eine Instanz Kontext über Konstruktor der später passieren:
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;
}
}
Sie erstellen können Instanz diese Klasse aus der Tätigkeit wie folgt:
new YourNonActivityClass(this);
+4
Was passiert, wenn ich eine statische Instanz meiner Klasse habe, da habe ich ein Problem mit statischen Kontexten. Was soll ich tun? –
+0
dann bereit sein für das Speicherleck –
den Kontext der ur aktuellen Aktivität auf die Java-Klasse Konstruktor übergeben ... – user1969053
Wenn Ihr nicht-Aktivitätsklasse ein 'Fragment', siehe http://stackoverflow.com/questions/8215308/using-Kontext-in-einem-Fragment. – dinosaur
Wenn Sie die Übergabe von Kontexten vermeiden möchten, erstellen Sie eine Klasse, die die Application-Klasse erweitert, und definieren Sie innerhalb dieser Definition den privaten statischen Kontext appContext; und bei onCreate() {this.appContext = getApplicationContext();} und public static Context getContext() {return appContext;} -Methode, die den Anwendungskontext zurückgibt und in der onActivity-Klasse verwendet. –