Я хотел бы создать секундомер в качестве приложения для Android. Моя проблема в том, что у меня есть stackoverflow. В основном у меня есть класс Timer и метод onCreate, который устанавливает его. Вот моя реализация:Stackoverflow inside thread - секундомер java
public abstract class Timer implements Runnable {
private boolean running;
public void start(){
running = true;
this.start();
}
@Override
public void run() {
long milliSeconds = 0;
long seconds = 0;
long minutes = 0;
long baseTime = SystemClock.elapsedRealtime();
while(running){
long time = SystemClock.elapsedRealtime() - baseTime;
long rest = time % 60000;
milliSeconds = rest % 1000;
seconds = rest - milliSeconds;
minutes = time - seconds - milliSeconds;
display(milliSeconds, seconds, minutes);
}
}
public void stop(){
running = false;
}
public abstract void display(long milliSeconds, long seconds, long minutes);
}
И мой OnCreate метод:
public TextView time;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.opslimit);
time = (TextView)findViewById(R.id.textView3);
Timer timer = new Timer(){
@Override
public void display(long milliSeconds, long seconds, long minutes) {
time.setText(minutes + ":" + seconds + ":" + milliSeconds);
}
};
timer.start();
}
Кто-нибудь представление о том, почему я получил Stackoverflow. Может быть, это касается части дисплея?