Ich habe ein Programm erstellt, das über PHP eine Verbindung zu einer Datenbank herstellt und eine Antwort zurückgibt. Mein Android-Programm macht dann eine Anforderung an die PHP-Datei und liest das Echo in.Java-Code wird nicht ausgeführt, nachdem eine Klassenfunktion aufgerufen wurde
public class Read_Author extends AsyncTask<String, Void, String> {
String authorName = "";
@Override
public String doInBackground(String... params) {
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://localhost/scripts/read_information.php");
HttpResponse response = httpclient.execute(httppost);
authorName = String.valueOf(EntityUtils.toString(response.getEntity()));
String myStr = "ANSWER";
Log.v(myStr, authorName);
}
catch(Exception e){
}
return authorName;
}
public String returnAuthor(){
return authorName;
}
}
ich erfolgreich das Echo-String abrufen und in den Variablen des Namen des Autors Zeichenfolge setzen. Aber wenn ich dann versuche, den Autor von meiner Hauptaktivität zurückzurufen, bekomme ich keinen Fehler, aber der Code wird nicht ausgeführt.
Ich nenne eine Funktion namens "readValue" innerhalb meiner Hauptaktivität und innerhalb dieser Funktion wird die Funktion execute gelesen und dann soll die returnauthor Funktion ausgeführt werden. Aber anstatt, passiert nichts Main Activity-Code:
public void returnAuthor(){
loadAuthor.execute();
String a = loadAuthor.returnAuthor();
Log.v("HIT ME", a);
}
Wenn jemand einen Vorschlag hat, warum das passiert sein könnte und wie man es beheben, die sehr geschätzt werden!
Ausführung Sie haben eine AsyncTask, Sie brauchen keine returnAuthor zu rufen, sondern warten, bis die Tast erfolgt und Gibt das String-Ergebnis zurück –
welche Art von Listener kann ich dafür innerhalb der Klasse verwenden? – RW6