HttpPost (client.execute(post)) verhindert einblenden des Menus...

  • Hey!
    Bin beim Basteln meiner apk mal wieder auf ein Problem gestoßen..


    Conzept:
    Prozess
    Menü erzeugung
    thread.start()
    Ausgabe in xml


    Thread
    while(){
    Datenbankabfrage (ENDLOSSCHLEIFE!) <-- Hier tritt der Fehler auf
    Sms senden
    HandlerRückgabe an Prozess
    }


    Problem: Ausführen von HttpPost (client.execute(post) verhindert öffnen des Kontextmenüs
    (Alle anderen Funktionien sind bereits implementiert und laufen ohne Probleme -
    Wenn HttpPost (client.execute(post) ausgeklammert wird,
    kann das menü ohne Probleme geöffnet und benutzt werden )


    Die Funktion ohne Menü funktioniert aber!! Vermutlich wird durch die Endlosschleife der Hauptprozess blockiert!


    Menü:

    Code
    [...]menu.add(0, MENU_NEW_status, 0, "stop");[...]


    Thread:

    Code
    [...]while (isRunning) {
    try {
    
    
    doLogin(user, pass, UPDATE_URL);
    [...]


    doLogin(...):


    Nochmal: Es geht NUR darum, das das Menü funktioniert, wenn die Endlosschleife ausgeführt wird,
    die wiederum FUNKTIONIERT, wenn client.execute(post) ausgeklammert ist!!


    Hat jemand iwelche Vorschläge, welchen Ansatz ich falsch gewählt habe?!


    Danke an alle, die sich dafür Zeit nehmen!


    fg assenda

  • Oh man tut mir echt leid^^ Hab den Fehler gefunden...


    Da sucht man Stunden nach dem Fehler und nachdem man sich an die Community wendet findet man den Fehler^^


    Also für alle, die Ähnliche Probleme haben:
    Aus dem Thread aufgerufene Methoden müssen auch in der Thread-Klasse vorhanden sein^^


    Ich habe die Methode zum Verbinden mit der Datenbank in der HauptKlasse gahabt..
    Dadurch hat sich die schleife auf den Hauptprozess ausgewirkt und keine Actionen im Hauptprozess erlaubt..


    (Bin selber noch nicht so fit und weiß nicht ob das alles richtig ist, aber das resultiere ich aus den Ergebnissen)

  • Aslo ich hab keine Erklärung dafür, aber als Anmerkung: normalerweise is das so, dass die Funktion immer in dem Thread ausgeführt wird, von dem sie auch aufgerufen wird. Welche Klasse davon betroffen ist, spielt eigentlich keine Rolle. Allerdings kann es unabhängig davon zu Blockern kommen, weil ja die Resourcen synchronisiert werden müssen und dann muss ein Thread eben warten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!