Kommunikation zwischen AsyncTask und Activity?

U

user7

Neues Mitglied
1
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
 
naja übergib dem task einfach deine activity
 
Übergib die Activity als WeakReference (siehe Java Doku)
 
Hilft scheinbar nichts:

The method getSharedPreferences(String, int) is undefined for the type WeakReference<Context>

The method getString(int) is undefined for the type WeakReference<Context>

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:

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
125
swa00
swa00
M
Antworten
2
Aufrufe
1.308
maksimilian
M
M
Antworten
3
Aufrufe
160
moin
M
Zurück
Oben Unten