Android - Googles Widerspruch zu Singleton Pattern

Ich habe ein wenig über die Verwendung von Singleton-Mustern in Android und deren Nachteile hinsichtlich der Beibehaltung des Kontexts gelesen. In der Tat, wenn ich den folgenden Code implementiere:

private static HttpManager sSingleton;
private Context mContext;

private HttpManager(Context context) {

    mContext = context;
}

public static synchronized HttpManager getInstance(Context context) {

    if (sSingleton == null) {
        sSingleton = new HttpManager(context);
    }

    return sSingleton;
}

Android Studio zeigt mir die folgende Warnung an:

Platzieren Sie Android-Kontextklassen nicht in statischen Feldern (statischer Verweis auf HttpManager, dessen Feld mContext auf Context verweist). Dies ist ein Speicherverlust und unterbricht auch Instant Run.

Allerdings kann ich Singletons implementiert und empfohlen sehenauf dieser Seite der Android-Dokumentation.

Wenn Ihre Anwendung das Netzwerk ständig nutzt, ist es wahrscheinlich am effizientesten, eine einzelne Instanz von RequestQueue einzurichten, die die Lebensdauer Ihrer App überdauert. Sie können dies auf verschiedene Arten erreichen. Der empfohlene Ansatz besteht darin, eine Singleton-Klasse zu implementieren, die RequestQueue und andere Volley-Funktionen kapselt.

Da Google sich selbst widerspricht, kann mich jemand anleiten und mich in diesem Punkt beraten?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage