Timer Problem

Dann lass Ihn doch jede 10nano prüfen ob eine Taste gedrückt wurde!
nach jeder 10nano erhöt er einen Zähler und wenn der Zähler 5000 erreicht ist schluss.
Sollte bol taste = true sein dann bricht er ab und taste wird von einer Eingabe gesetzt.

Ist schmutzig die Idee allerdings funktioniert es erst ein mal.


PS:
Ich halt mich raus. Das Thema liegt mir nicht so.
 
Zuletzt bearbeitet:
Moin!


Nö, dafür ist ja der Timer zuständig, der das ganze erst nach 5 Sekunden aufruft.


Der Aufruf funktioniert schon. Die cancel() Methode kannst du sooft aufrufen wie du willst.
Ich nehme aber an, du rufst die cancel() Methode auf und möchtest danach mit dem Timer erneut einen Task erstellen. Das klappt nicht.
Entweder erstellt du dir dann einen neuen Timer oder du cancelst den TimerTask und nicht den Timer...

*grüssle*
MeinerEiner

Natürlich soll das Ganze mehrmals aufgerufen werden, aber darum geht es nicht. Ich kann die TimerTask auch bei einem einmaligen Aufruf nicht abbrechen, d.h. verhindern, dass es pipst.
 
Dann poste doch mal bitte den (lauffähigen) Quellcode, welches diesen Fehler verursacht..
 
Dann kann ich dir leider auch nicht weiter helfen.
Ich kann dir nur sagen, das so eine Fehlermeldung eigentlich nur kommt, wenn man versucht erneut einen TimerTask von einem bereits gecancellten Timer ausführen lassen möchte..
 
Aus einem Programm, das Tausende von Programmzeilen enthält und mit einer Ausnahme perfekt läuft, die relevanten Zeilen herauszupicken, ist nicht so einfach.

Ja nu, wie dem auch sei, ich habe das Problem ohne Timer gelöst:

long startCountTime;
long idleCountTime;

startCountTime = Calendar.getInstance().getTimeInMillis();

notYetSignal = true;

while (notYetSignal == true) {
idleCountTime = Calendar.getInstance().getTimeInMillis();
if (idleCountTime - startCountTime > 5000) {
Toolkit.getDefaultToolkit().beep();
notYetSignal = false;
}
}

Dort, wo ich die Tastatureingaben abfrage, setze ich notYetSignal auf false. Damit habe ich erreicht, was ich möchte: es pipst nach 5 Sekunden. Wenn der Benutzer eine Taste drückt, bevor die 5 Sekunden vorbei sind, pipst es nicht.

Ich denke zwar, das Gleiche müsste sich via Timer auch erreichen lassen. Wie das gehen soll, ist mir nach wie vor nicht klar.

Ich danke allen herzlich für die lebhafte Diskussion.

JavaNeuling
 
Zurück