Async Task und SharedPreferences

  • Hallo zusammen,


    habe folgendes Problem:


    Ich greife über einen Async Task auf einen Webserver zu. Für den Zugriff benötige ich Daten, welche innerhalb der App als SharedPreferences hinterlegt sind. Der Serverzugriff liegt in einer eigenen Klasse.
    Beim Zugriff auf die SharedPreferences bekomme ich in der folgenden Codezeile eine Fehlermeldung:


    Code
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());


    Die IDE sagt: The method getApplicationContext() is undefined for the type GetXMLFromServer.


    Solange ich den AsyncTask als innere Klasse in der MainActivity liegen habe funktioniert der Aufruf. Der AsyncTask soll aber als seperate Klasse implementiert werden.


    Wie komme ich an meine SharedPreferences ran?

  • Es ist eigentlich ganz logisch, dass das so nicht funktioniert.
    getApplicationContext() ist eine Methode von Activity. Sobald sich Deine Klasse nicht mehr im Bereich einer Activity befindet (als innere Klasse ist sie das ja noch), kann diese Methode nicht gefunden werden.


    Du könntest den Context als Parameter an Deinen Async Task übergeben.
    Alternativ könntest Du auch nur die für diese spezielle Verbindung benötigten Daten als Parameter an Deinen Async Task übergeben.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Liegt die genannte Zeile noch in deiner Activity oder in der eigenen Serverzugriffsklasse?


    Wenn sie noch in der Activity liegt versuchs mal mit "Activitiyname".this.getApplicationContext()
    Wenn die genannte Zeile in einer eigenen Klasse liegt musst du den Context einfach an diese Klasse mit übergeben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!