1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Kommunikation zwischen AsyncTask und Activity?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von user7, 15.03.2011.

  1. user7, 15.03.2011 #1
    user7

    user7 Threadstarter Junior Mitglied

    Beiträge:
    39
    Erhaltene Danke:
    1
    Registriert seit:
    07.03.2011
    Phone:
    Sony Ericsson Xperia Arc
    Hallo,

    ich strauchel derzeit etwas um die Klasse AsyncTask herum...

    Hab eine Klasse davon abgeleitet, deren doInBackground()-Methode ein Array von Fehlercodes zurück gibt.

    Jetzt habe ich in der Doku gelesen, dass dieser Rückgabewert als Parameter an onPostExecute() übergeben wird.

    Aber wie geht es danach weiter? Wie kann ich denn von onPostExecute auf meine Acitivity zugreifen und ihr die Fehlercodes weiterreichen? (Oder umgekehrt?)

    Oder noch besser - gleich einen Toast mit entsprechender Fehlermeldung auf den Bildschirm zaubern? Geht das nur, indem ich dem AsyncTask ein Context-Objekt übergebe, oder gibt es da eine elegantere Lösung?

    Viele Grüße,
    user7
     
  2. swordi, 15.03.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    naja übergib dem task einfach deine activity
     
  3. user7, 15.03.2011 #3
    user7

    user7 Threadstarter Junior Mitglied

    Beiträge:
    39
    Erhaltene Danke:
    1
    Registriert seit:
    07.03.2011
    Phone:
    Sony Ericsson Xperia Arc
  4. klausa2, 15.03.2011 #4
    klausa2

    klausa2 Fortgeschrittenes Mitglied

    Beiträge:
    298
    Erhaltene Danke:
    20
    Registriert seit:
    08.07.2009
    Übergib die Activity als WeakReference (siehe Java Doku)
     
  5. user7, 16.03.2011 #5
    user7

    user7 Threadstarter Junior Mitglied

    Beiträge:
    39
    Erhaltene Danke:
    1
    Registriert seit:
    07.03.2011
    Phone:
    Sony Ericsson Xperia Arc
    Hilft scheinbar nichts:

    Edit:
    Als halbe Lösung habe ich meine Activity-übergreifenden Klassen jetzt von allen Context-spezifischen Funktionen befreit. In der Activity-Klasse leite ich davon dann eine innere Klasse ab, in der ich onPostExecute() überschreibe und dort die Context-spezifischen Funktionen ausführe.

    Die wenigen übrigen Funktionen, die ich in mehreren Activities gleich brauche, habe ich jetzt als public static in eine eigene Klasse gepackt und versucht, möglichst kurz zu halten. Wenn ich nur kurz die (globale) Funktion aufrufe und ihr Context als Parameter übergebe, sollte es ja keine Probleme bei der Speicherverwaltung geben, oder?

    Muss aber sagen, dass ich insgesamt nicht sehr glücklich mit dieser Verpackung bin - aber es scheint ja nicht anders zu gehen?
     
    Zuletzt bearbeitet: 16.03.2011

Diese Seite empfehlen