E
Elvis
Neues Mitglied
- 0
An der Stelle, an der "TimerTest2" ausgegeben werden sollte, stürzt das Programm immer ab.
"TimerTest1" wird noch ausgegeben.
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?
"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");
}
}
}
}
Ist ja irgendwie verständlich. Aber wie kann ich von dem "falschen" thread auf den Ursprünglichen zugreifen, damit der das ausgibt?