Ich versuche grundsätzlich, Breite und Länge aus einer anderen Klasse zu holen, die anfangs alle 30 Sekunden ausgeführt wird. Längenwerte erreichen in der Nähe meiner Zielbreite, Länge mit einer Geschwindigkeit von beispielsweise 5 Sekunden, und wenn die Entfernung zum Zielbereich beispielsweise 100 km beträgt, sollte das Abrufen von Werten mit einer Geschwindigkeit von 5 Minuten erfolgen. Ich habe versucht mit Timer-Task, kann aber nicht innerhalb der Timer-Task neu planen.Android Java: Führe eine Funktion wiederholt mit einer dynamisch auf bestimmten Bedingungen eingestellten Verzögerung aus.
Wenn nicht durch Timer-Aufgabe, gibt es eine andere Möglichkeit, das gleiche zu erreichen? Mein Code sieht etwas ähnlich wie der unten genannten
timer = new Timer();
myTimerTask = new MyTimerTask();
timer.schedule(myTimerTask, 0, 30000);//default delay 30 seconds
class MyTimerTask extends TimerTask {
@Override
public void run() {
latitude = gps.getlatitude();
longitude = gps.getlongitude();
int distance =getdistance(latitude,longitude,target_latitude,target_longitude);
if(distance <50)
//execute timer task with 5 second delay
else if (distance >100)
//execute timer task with 5 minutes delay
}