Beiträge von stevensen

    Jaja das weiß ich. Den Handler, den ich beim Erstellen des TCP-Thread()(MyThread2) mitgeben funktioniert ja auch. Die Daten werden korrekt vom TCP-Thread zum MainThread(UI-Thread) übertragen.
    Nur der Handler den ich im TCP-Thread erstellen, der Daten vom Main-Thread zum TCP Thread übertragen soll will nicht richtig. Ist für mich schwierig zuklären. Wenn der Handler im TCP-Thread außerhalb des run() funktion erzeugt wird, empfängt er die message aber es gibt dann ne Fehlermeldung das versucht wird eine Netzwerkfunktion innerhalb der UITHread zu benutzten., also scheint der HAndler im TCPTHread nicht wirklich im TCPTHread zu existieren. Naja und das verstehe ich nicht. Irgendwie hängt das wohl mit den Loopern zusammen? bin ratlos

    @ChampS Vielen Dank für deine Antwort! Teilweise hatte ich es so wie du sagtes, und hatte aber auch noch neue Erkennisse durch deine Tipps. Es geht aber leider immer noch nicht richtig. Also ich hole ein wenig aus. Ich versuche eine SPS Logo! per android anzusteueren(rein private Sache). Das funktionierte in der Androidversion 2.3. Jetzt im Emulator mit Android4.0 bekomme Netzwerkfehler. Mann darf ab Android 3.irgenwass wohl keine zeitintensiven Sachen wie TCP etc. im UiThread machen. Deswegen lagere ich die Tcp-Funktionen in einen Thread aus, der läuft auch d.h. ich kann kann daten aus der sps auslesen und im UIThread anzeigen lassen. Mithilfe eines Handlers den ich im UIThread erstelle und beim Erzeugen des TCP-Threads mitgebe bekomme ich die Daten alle paar ms in den UI-Tread. Der Punkt der nicht geht ist das Senden von Befehlen vom Ui-Thread in den TCP-Thread.


    vom UiThread rufe ich per button klick diese Zeile auf:
    MyThread2.tHandler.sendEmptyMessage(3); // MyThread2 ist mein TCP-Thread


    Ich sehe im Locat das der Button 6 mal geklickt wird, aber es passiert erstmal nichts. Erst wenn das Programm den verbindung schliesst und ich es dann verlasse dann erscheinen die 6 Messages mal. Ich habe auch tHandler = new Handler(Looper.getMainLooper()) aus probiert, dann kommen die Reaktion auf den Buttenklick sofort, aber dann gibts die Netzwerk-Fehlermeldung (nodave-Funktionen). Also hängt das doch mit dem Looper zusammen, weil ich ja dann die Netzwerkfunktionen mithilfe des Mainloopers ja wieder im UIThread machen will, oder? Aber wie kriege ich den richtigen Looper meines TCP-Threads. Ich bin wirklich ein wenig am verzweifeln.

    Hi Leute,
    ich kämpfe schon ne geraume Zeit mit Threads und Handlern und hab schon viele Seiten durchgelesen aber ich verstehs nicht. Also
    ich hab 'ne Instanz einer Threadklasse mit Looper, und die übermittelt Daten (strings) zu meinem UI-Thread und mittles Toasts werden die auch angzeigt. das klappt! Dafür habe ich von meinem UI-Thread einen Handler beim Erzeugen des Threads-Objekt mitgegeben.
    Jetzt möchte Daten von meinem Ui-Tread zum anderen Thread schicken. Dort habe ich einen Handler angelegt der die messages verarbeiten soll.
    Wie bekomme ich diesen Handler vom Thread. Ich habe ne Methode die den Handler mit return zurück liefern, soll aber der ist immer null.
    Wie holt man sich einen Handler aus einem Thread? ?(

    Ich hab mir die Service-Funktionen angeschaut, habe aber bisher nur Beispiele mit Intents gefunden. Wie man das jetzt mit Handler macht, blicke ich noch nicht. Stehe halt noch ganz am Anfang mit dieser Thematik. Gibt es Beispiele wie Handler Servises ansprechen und Daten (in meinem Falle eigentlich nur ein paar Bytes) in beide Richtungen austauschen.

    Danke für deine Antwort!
    Also tatsächlich ist es so, dass ich mehrer Buttons habe mit denen ich Ausgänge einer SPS schalte und Eingänge einlese. Ich habe ne App mit android 2.33 die prinzipell funktioniert aber natürlich ab 3.0 und höher nicht mehr. Da kamen dann Fehlermeldungen das zeit-intensive Aufgaben in Threads ausgelagert werden sollen. Der AsyncTask müsste eine TCP-Verbindung herstellen und halten(loopen) bis ich disconnecte oder die App beende. Würde das gehen? Ich habe beim AsynkTask nur beispiele gefunden die einmal durchlaufen aber nicht "loopen". Kann ich AsynkTask loopen und falls ja gibts Beispiele dafür?

    Hallo,


    bin neu in Sachen Threads unterwegs und komme grade nicht klarund brächte erstmal eine allgemeine Klärung. Ich hätte gerne einen Thread der der Daten über tcp abruft. Jetzt kann ja ein Thread nicht auf Sachen im Ui-Thread zugreifen und deshalb wollte ich Handler benutzen. Muss ich einen Handler benutzen der auf beide Threads(z.B. UI-Thread und TCP-Thread) zugreift oder bekommt jeder Thread einen Handler? Also UI-Thread benutzt den in Thread TCP erzeugten Handler und umgekehrt um Messages zu versenden. Oder geht das ganz anders?