Hallo,
wie so oft gibt es für dein Problem mehrere Lösungen:
1) Verschiedene Foo Klassen
Du schreibst dir also die Klassen Foo1, Foo2 usw. und implementierst das unterschiedliche Verhalten in den jeweiligen Klassen. Diese Lösung ist zwar naheliegend, aber ich würde sie mal als "naiven" Ansatz bezeichnen.
2) Eine Foo Klasse mit einer Implementierung von onPostExecute()
Diese Lösung setzt voraus das deine Klasse zur Laufzeit weiß was konkret in den verschiedenen Situationen in onPostExecute() passieren soll. Das bedeutet das deine Implementierung etwa so aussieht
if(situation == 1)
tue was in Situation 1 zu tun ist
else if(situation == 2)
tue was in Situation 2 zu tun ist
else
tue was sonst zu tun ist
3) Auslagern des unterschiedlichen Verhaltens in separate Klassen
Du gibts im Konstruktor deiner Foo Klasse eine weitere Klasse mit, die das jeweilige Verhalten implementiert. In der onPostExecute() Methode delegierst du dann an die übergebene Klasse. Das ist das sog. Strategie-Muster. Wenn du Tante google befragst wirst du dazu jede Menge Beispiele finden.
Ich hoffe das hilft dir weiter.
nachdenklich