carookee - group communication for you
Home / JavaForum / Java allgemein
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
3.868 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 43 von 2212 (2%) |<   <   >   >|

Autor Stephanie
Datum 16.05.07, 11:18
Betreff TimerTask, timer.cancel() funktioniert nicht


Hallo zusammen,

ich habe folgendes Problem. Ich führe einen Task aus, in dem z.B. GPS Daten ausgelesen werden. Die Ausführung startet, wenn ein bestimmter Befehl über den Com-Port gesendet wird. Das funktioniert so weit auch. Ich möchte nun aber genau diesen Task auch wieder stoppen, wenn ein bestimmter Befehl gesendet wird ("StopGPS"). Ich habe versucht dies mit timer.cancel() zu realisieren, aber leider funktioniert das nicht. Vielleicht kann mir jemand weiterhelfen oder hat Tipps für mich, was da nicht funktioniert. Ich hatte timer.cancel() auch schon in der run-Methode stehen, aber dann stoppt der Task direkt nach einmaligem auslesen von GPS-Daten. Ich möchte aber, dass der Task so lange ausgeführt wird bis ein Befehl gesendet wird. Wäre für jede Hilfe sehr dankbar.

Anbei ein bissel Code aus meinem Programm:

// Hier lese ich den Befehl ein und bestimme was passieren
soll
public static void getCommand(StringBuffer command) {
    ...
    Timer timer = new Timer();
    if (command.toString().equalsIgnoreCase("startGPS")) {
        getRMCData(timer);
    } else if(command.toString()
    .equalsIgnoreCase("stopGPS")) {
        timer.cancel();
    }
    ...
}

// Task starten und alle 300ms ausführen...
public static void getRMCData(Timer timer) {
    timer.schedule(new TaskRMC(), 1, 300);
    ...
}

// GPS Daten holen...
public class TaskRMC extends TimerTask {
    public void run() {
        String replyRMC =
        GPSInterface.getInstance().requestRMC();
        ...
    }
}



Gruß Stephie


 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com