1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. moelski, 19.03.2011 #1
    moelski

    moelski Threadstarter Junior Mitglied

    Moin !

    Ich versuche grade eine kleine Anwendung zu schreiben. Die soll nur von einem TCP Server Daten empfangen.

    Mein Code besteht im Grunde nur aus einer Klasse und der Methode OnCreate:
    Code:
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            try {
                setContentView(R.layout.main);
                
                myView1 = (TextView)findViewById(R.id.textfield1);
                
                Socket s = new Socket("xxx.xxx.xxx.xxx", 9050);
                BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
                //read line(s)
                String st = input.readLine();
                myView1.setText("Connection OK : " + st);
                
                //outgoing stream redirect to socket
                OutputStream out = s.getOutputStream();
                PrintWriter output = new PrintWriter(out);
                output.println("This comes from the Android LV :)\n\r");
                output.flush();
               
                while (true)
                {
                    st = input.readLine();
                    st = "Data " + st + " END";
                    st = st.trim() + "\n";
                    myView1.setText(st);
                }
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                myView1.setText("Connection bad : " + e.toString());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                myView1.setText("Connection bad : " + e.toString());
            }
        }
    Der Code funktioniert soweit wenn ich nicht den While Block unten nutze. Dann kriege ich eine Message vom Server und sende ein Feedback zurück. Klappt alles super.
    Nehme ich die While Schleife in Betrieb dann wird mein Textfeld nicht mehr beschrieben. Die Daten werden aber empfangen. Das kann ich im Debugger sehen.

    Auch ein myView1.Invalidate(); hilft nicht.

    Hat jemand eine Idee warum die While Schleife da so einen Stress macht? Das ist sicher nicht sauber so, aber ich wollte nur mal checken ob das generell klappt.

    Grüße Dominik
     
  2. v Ralle v, 19.03.2011 #2
    v Ralle v

    v Ralle v Android-Lexikon

    Pack das nicht in die onCreate Methode. Soetwas macht man nicht in dem UI Thread. Schau dir dazu am besten mal die Klasse Asynctask an. Ich bin mir ziemlich sicher, dass das dein Problem ist.
     
  3. moelski, 19.03.2011 #3
    moelski

    moelski Threadstarter Junior Mitglied

  4. v Ralle v, 19.03.2011 #4
    v Ralle v

    v Ralle v Android-Lexikon

    Naja, so erstaunlich ist das nicht wirklich... ^^ Aber schön, dass es klappt :)
     
  5. moelski, 19.03.2011 #5
    moelski

    moelski Threadstarter Junior Mitglied

    Moin !

    Für dich evtl nicht, aber für einen Einsteiger wie mich schon :p

    Nuja, ich habs nun erstmal grundlegend am laufen mit dem AsyncTask.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] RFID Karten Kommunikation? Android App Entwicklung 18.06.2017
Kommunikation zwischen 2 Smartphones herstellen Android App Entwicklung 07.01.2017
Python Server / Android Client-Socket-Error Android App Entwicklung 03.11.2016
App wird nicht gestartet, "Error while Launching activity" Android App Entwicklung 21.10.2016

Users found this page by searching for:

  1. android socket communication

Du betrachtest das Thema "Socket Kommunikation will nicht nach While {}" im Forum "Android App Entwicklung",