Java - return Wert aus Thread (externe URL)

Hallo,

ich komme bei einem Problem nicht weiter. Ich habe die folgende Funktion:

Code:
	public String foo(){
		// Create a new HttpClient and Post Header
		HttpClient client = new DefaultHttpClient();
		HttpPost post = new HttpPost(this.serverURL);
               
		try {
                   // Hier stehen die Pairs
		   post.setEntity(new UrlEncodedFormEntity(pairs));
		   HttpResponse response = client.execute(post);
                     // Liefert einen String
                    // return String;
		   }catch (IOException e) {
	    }
	}

Die Daten werden an den Server geschickt, bearbeitet dann will ich den Rückgabewert weiter in meinem Java Programm (eigentlich eine Android App) nutzen. Ich führe die Funktion wie folgt aus:

Code:
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
 try {
    	        	String s = foo();
    	        } catch (Exception e) {
    	            e.printStackTrace();
    	        }
    	    }
	    });
	    thread.start();

Ich habe es etwas gekürzt. Der Server liefert einen String. Ich möchte nun gerne diesen String nutzen. Wie kann ich das realisieren ?

Danke
 
14.4.3 Threads mit Rückgabe über Callable

Der nebenläufige Thread kann nur über Umwege Ergebnisse zurückgeben. In einer eigenen Klasse, die Runnable erweitert, lässt sich im Konstruktor zum Beispiel eine Datenstruktur übergeben, in die der Thread ein berechnetes Ergebnis hineinlegt. Die Datenstruktur kann dann vom Aufrufer auf Änderungen hin untersucht werden.
Die Java-Bibliothek bietet noch einen anderen Weg, denn während run() in Runnable als Rückgabe void hat, übermittelt call() einer anderen Schnittstelle, dem Aufrufer Callable, eine Rückgabe. Zum Vergleich:
Galileo Computing :: Java ist auch eine Insel – 14.4 Der Ausführer (Executor) kommt
 
Zurück
Oben