最初は30秒ごとに実行される別のクラスから緯度と経度をフェッチしようとしています。経度の値が私の目標緯度、経度の近くに5秒の割合で到達し、目標までの距離が100kmの範囲を超えている場合、値の取得は5分の速さで行われます。 私はタイマータスクを試みましたが、タイマータスク内で再スケジュールできません。Android java:いくつかの条件に基づいて動的に遅延を設定して関数を繰り返し実行する
タイマータスクではない場合、これを達成する他の方法はありますか? 私のコードは以下の
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
}