Problem bei return eines AsyncTasks

  • Antworten:6
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 605

27.01.2016, 19:18:48 via Website

Hallo Leute,

ich habe ein AsyncTask erstellt, um das Auslesen einer MySQL-Datenbank zu realisieren. Das funktioniert auch soweit.

Allerdings soll der AsyncTask nun ein ResultSet zurück geben, und da habe ich das Problem.

Die Methode doInBackground gibt einen String zurück. Für MySQL Datenbanken bekomme ich allerdings ein ResultSet zurück.

 private  class excecuteStatementWithResult extends AsyncTask<String, Void, String> {

protected String doInBackground(String... stmnt) {

    String s = "";

    try{
        statement = connection.createStatement();
        ResultSet rs = statement.executeQuery(stmnt[0]);
    }catch (SQLException sqle) {
        sqle.printStackTrace();
    }

    return s;
}

}

Diesem AsynkTask will ich das MySQL-Statement per String übergeben, und als return ein ResultSet erhalten...

Wie kann ich das realisieren?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.174

27.01.2016, 19:36:21 via App

Ändere doch einfach den ReturnType von String zu ResultSet...

PS : Direkter Zugriff auf Mysql aus Android ist keine Gute idee denn es ist unsicher. Lasse es lieber über eine PHP Api laufen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 605

27.01.2016, 19:36:34 via Website

Ja, danke, das passt :)

Wie führe ich den AsyncTask nun aus, sodass in den Rückgabewert abfangen kann?

EDIT:

mit

   ResultSet rs = new excecuteStatementWithResult().execute("").get();

funktioniert es nicht.

— geändert am 27.01.2016, 19:41:17

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.174

27.01.2016, 23:14:58 via App

Musst ja auch die DoInBackground ändern

protected ResultSet doInBackground(..)

— geändert am 27.01.2016, 23:15:20

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 605

28.01.2016, 09:18:44 via Website

Ja, danke, das hat natürlich geholfen. Flüchtigkeits-Fehler ;)
Ich setze den Thread nun auf erledigt.

Antworten

Empfohlene Artikel