Gibt es eine Möglichkeit, die aktuelle Context
Instanz innerhalb einer statischen Methode?
Ich bin auf der Suche nach dieser Möglichkeit, weil ich es hasse, die Instanz "Context" jedes Mal zu speichern, wenn sie sich ändert.
Gibt es eine Möglichkeit, die aktuelle Context
Instanz innerhalb einer statischen Methode?
Ich bin auf der Suche nach dieser Möglichkeit, weil ich es hasse, die Instanz "Context" jedes Mal zu speichern, wenn sie sich ändert.
Kotlin Weg :
Manifest:
<application android:name="MyApplication">
</application>
MeineAnwendung.kt
class MyApplication: Application() {
override fun onCreate() {
super.onCreate()
instance = this
}
companion object {
lateinit var instance: MyApplication
private set
}
}
Sie können dann auf die Immobilie über MyApplication.instance
Wenn Sie offen sind für die Verwendung von RoboGuice können Sie den Kontext in jede beliebige Klasse injizieren lassen. Hier ein kleines Beispiel dafür, wie man es mit RoboGuice 2.0 (Beta 4 zum Zeitpunkt der Erstellung dieses Artikels) machen kann
import android.content.Context;
import android.os.Build;
import roboguice.inject.ContextSingleton;
import javax.inject.Inject;
@ContextSingleton
public class DataManager {
@Inject
public DataManager(Context context) {
Properties properties = new Properties();
properties.load(context.getResources().getAssets().open("data.properties"));
} catch (IOException e) {
}
}
}
Ich habe das irgendwann einmal benutzt:
ActivityThread at = ActivityThread.systemMain();
Context context = at.getSystemContext();
Dies ist ein gültiger Kontext, den ich beim Erhalt von Systemdiensten verwendet habe und der funktioniert.
Ich habe es jedoch nur bei Rahmen-/Basisänderungen verwendet und nicht in Android-Anwendungen ausprobiert.
A Warnung die Sie kennen müssen: Wenn Sie sich mit diesem Kontext für Rundfunkempfänger anmelden, wird dies nicht funktionieren und Sie werden eine Meldung erhalten:
java.lang.SecurityException: Das angegebene Aufruferpaket Android läuft nicht im Prozess ProcessRecord
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.