2016-09-28 4 views
-3

Ich habe dieses große Problem mit der Programmierung die ganze Zeit. Mein Szenario ist das folgende:Rufen Sie eine Methode auf, wenn Variable geändert

Ich habe meine loadingActivity. Es ist meine Startaktivität und sollte eine Art von Grafik anzeigen, während es einige Daten aus dem Internet lädt.

Die App erhalten diese Daten mit einer separaten Klasse, die einige JSON-Daten in einer asyncTask lädt. Jetzt möchte ich, dass meine loadingActivity informiert wird, wenn das Laden und Parsen beendet ist. Wie habe ich das geschafft?

Ich lese bereits über eine Schnittstelle changeListener aber konnte es nicht in meine Situation verwandeln.

Die Konstruktion ist folgende: Aktivität: InformationLoadActivity.class StandardClasses: GetWeatherJsonData und GetMyDatabaseJsonData beide erweitert meine GetRawJsonData meine Inhalte zu handhaben Download bereit.

InformationLoadActivity:

@Override 
protected void onStart() { 
    super.onStart(); 

    GetWeatherJsonData weatherData = new GetWeatherJsonData("http://api.openweathermap.org"); 
    weatherData.execute(); 
} 

innen und nach Informationen von Parsen der Wetter Finishing beginne ich die GetMyDatabaseJsonData. Und innerhalb dieser Klasse möchte ich meine InformationLoadActivity.class informieren, dass das Laden und Parsing beendet ist und es in diesem Fall in eine andere Aktivität springen kann, meine MainActivity, die diesen geladenen Inhalt anzeigt.

Antwort

0

In PostExecute Ihrer AsyncTask Code schreiben Sie die gewünschte Aktion zu implementieren d.h gehen Sie zu Ihrem MainActivity

+0

Ich verstehe das nicht. Ich habe eine Methode "openMainActivity innerhalb meiner InformationLoadActivity, wo ich das" startActivity (intent); "Zeug. Aber wie kann ich das in meinem GetMyDatabaseJsonData aufrufen. – kuemme01

+0

Um eine Absicht zu generieren brauche ich die Instanz meiner InformationLoadController oder nicht? Und nur Mit dieser Absicht kann ich zu meiner MainActivity wechseln – kuemme01

+0

Erstelle einen Konstruktor für deine GetMyDatabaseJsonData Klasse, der Acticity als Argument akzeptiert.Wenn du also diese Klasseninstanz initiierst, musst du deinen Aktivitätskontext angeben.Nach dem onPostExecute kannst du deine Logik schreiben um zur nächsten Aktivität zu gehen – Nishith

Verwandte Themen