Hi leutz.
Ich habe eine Methode geschrieben die 2 Buttons zum weiter verarbeiten einer Datei enabled(true) setzten soll.
Um sicher zu stellen das die Datei besteht und auch fertig erstellt ist habe ich einen Timer eingebaut der 20 Sekunden lang jede Sekunde schaut ob die datei erstellt wurde UND Ihre grösse gleich bleibt(wenn ihr ne andere Idee habt dann immer raus damit).
Alles soweit so gut.
Nur wenn das dann gegeben ist möchte ich den Timer beenden..
In den Zeilen wo return; steht sollte der Timer einfach "ausgeschaltet" werden.
Kann mir wer erklären wie ich das hin bekomme!
Thx im vorraus
Gruss
MScalli
Hier mein code
Ich habe eine Methode geschrieben die 2 Buttons zum weiter verarbeiten einer Datei enabled(true) setzten soll.
Um sicher zu stellen das die Datei besteht und auch fertig erstellt ist habe ich einen Timer eingebaut der 20 Sekunden lang jede Sekunde schaut ob die datei erstellt wurde UND Ihre grösse gleich bleibt(wenn ihr ne andere Idee habt dann immer raus damit).
Alles soweit so gut.
Nur wenn das dann gegeben ist möchte ich den Timer beenden..
In den Zeilen wo return; steht sollte der Timer einfach "ausgeschaltet" werden.
Kann mir wer erklären wie ich das hin bekomme!
Thx im vorraus
Gruss
MScalli
Hier mein code
Code:
private void setButtonsEnabledWhenDocumentIsCreated() {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
int zaehler = 0;
long vergleich = -1;
public void run() {
if(zaehler < 20){
System.err.println("** " + zaehler + " **");
//Existiert das File schon?
if(MyFile.fileExists(path_temp_document)){
//Die grösse stimmt überein - die Datei müsste fertig erstellt sein
//vergleich ist auf -1 damit auf jeden fall die File-länge 1 mal nach vergleich gespeichert wird
if(vergleich == new File(path_temp_document).length()){
//jetzt können die Daten weiter verarbeitet werden(Datei ist fertig erstellt!)
btn_ok.setEnabled(true);
btn_pdf.setEnabled(true);
return; //hier sollte der Timer beendet werden aber wie
} else {
System.out.println("file ist nicht gleich lang");
vergleich = new File(path_temp_document).length();
}
}
zaehler++;
} else {
return;//hier sollte der Timer beendet werden aber wie
}
};
};
timer.schedule(task,1000,1000); //führt den Thread in einer sec und dann jede sec aus
}