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

Java Problem

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von GMoN, 15.04.2009.

  1. GMoN, 15.04.2009 #1
    GMoN

    GMoN Threadstarter Android-Lexikon

    Beiträge:
    1,134
    Erhaltene Danke:
    131
    Registriert seit:
    01.02.2009
    Vielleicht kann mir ein Java Experte erklären wieso mein Programm sonderbare Dinge macht, wenn ich text in eien TexView aus einem Timer schreiben will. Die textviews werden normal im onCreate definiert und der Timer wird dort auch gestartet. Ich vermute, dass der Text in irgendwelche Speicherbereiche geschrieben wird, wo er nicht hingehört. Es kommt aber keine Fehlermeldung. Hier mal die wichtigen Code Zeilen

    Code:
    
    ...
    TextView tv_mem;
    final Timer timer = new Timer();
    
    @Override
        public void onCreate(final Bundle icicle) {
         super.onCreate(icicle);
         setContentView(R.layout.main);
         tv_mem=(TextView)findViewById(R.id.text_mem);
         timer.scheduleAtFixedRate(task, 0, 2000);
         }
    
    TimerTask task = new TimerTask() {
             public void run() {
                 tv_mem.setText("MEM: ");
                 ....
                 
             }
             };
    
    
     
  2. zx128, 16.04.2009 #2
    zx128

    zx128 Android-Lexikon

    Beiträge:
    1,179
    Erhaltene Danke:
    143
    Registriert seit:
    23.01.2009
    Hi,

    es ist verboten aus einem Thread direkt auf GUI zuzugreifen.
    Nur der Main-Thread darf das.

    Ich nutze dafür ein Handler:

    Code:
    // in Activity:
     private Handler handler = new Handler();
    
    // irgendwo weiter im Code
    handler.post(new Runnable(){
           
           public void run() {   
                   ...hier Zugriff auf GUI 
           }
                                    
    });
    
     
  3. GMoN, 17.04.2009 #3
    GMoN

    GMoN Threadstarter Android-Lexikon

    Beiträge:
    1,134
    Erhaltene Danke:
    131
    Registriert seit:
    01.02.2009
    Vielen Dank für die Erklärung, das leuchtet ein.

    Ist bei Symbian genauso gewesen, nur gab es da immer ne Exception und nicht son merkwürdiges Verhalten, nur habe ich im DDMS nix dergleichen bemerkt.
     

Diese Seite empfehlen