1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

absturz durch TextView.setText in TimerTask? (threadproblem?)

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Elvis, 08.08.2010.

  1. Elvis, 08.08.2010 #1
    Elvis

    Elvis Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    04.08.2010
    An der Stelle, an der "TimerTest2" ausgegeben werden sollte, stürzt das Programm immer ab.
    "TimerTest1" wird noch ausgegeben.


    Code:
    package com.MegaTest;
    
    import android.app.Activity;
    import android.os.Bundle;
    import java.util.Timer;
    import java.util.TimerTask;
    import android.widget.TextView;
    
    public class MegaTest extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            TimerTaskDemo ttd = new TimerTaskDemo();
            ttd.test();
        }
    
        public class TimerTaskDemo {
            public void test() {
                Timer timer = new Timer();
                timer.schedule(new Task(), 5000, 1000);
                TextView tv2 = (TextView) findViewById(R.id.text);
                tv2.setText("TimerTest1");
            }
    
            class Task extends TimerTask {
                @Override
                public void run() {
                    TextView tv2 = (TextView) findViewById(R.id.text);
                    tv2.setText("TimerTest2");
                }
            }
        }
    }
    
    Dalvik sagt mir, dass ich im falschen Thread hänge und ich den TextView nur von dem Thread aufrufen kann, in dem er erstellt wurde.
    Ist ja irgendwie verständlich. Aber wie kann ich von dem "falschen" thread auf den Ursprünglichen zugreifen, damit der das ausgibt?
     
  2. Artwork, 08.08.2010 #2
    Artwork

    Artwork Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    29.07.2010
    Phone:
    T-Mobile G1
    Zuletzt bearbeitet: 08.08.2010
  3. Elvis, 08.08.2010 #3
    Elvis

    Elvis Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    04.08.2010
    danke, werde ich mir mal ansshen.
     
  4. Makaveli, 08.08.2010 #4
    Makaveli

    Makaveli Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    0
    Registriert seit:
    08.08.2010
    Runnable benutzen
     

Diese Seite empfehlen