1

GeoCoordinateWatcher.PositionChaged イベントは定期的なタスク内でどのように機能しますか? 1 時間ごとに実行されるバックグラウンド エージェントがあるとします。コードは

 protected override void OnInvoke(ScheduledTask task)
 {
   GeoCoordinateWatcher watcher = new    
   GeoCoordinateWatcher(GeoPositionAccuracy.Default);
   watcher.MovementThreshold = 100;
   watcher.PositionChanged += _watcher_PositionChanged;
   watcher.Start();
  }

最初にデバイスが位置 A にあり、デバイスが次の 1 時間以内に 100 m 以上移動した場合、onInvoke() が呼び出された 1 時間後に _watcher_PositionChanged が発生しますか?

4

1 に答える 1

3

いいえ。次回OnInvoke呼び出されたときに new をインスタンス化すると、その瞬間からGeoCoordinateWatcherのみイベントが発生します。PositionChangedそれは生まれたばかりで、以前はどこにいたのか見当もつきません。

座標を保存してすべての OnInvoke 呼び出しで参照し、必要に応じて手動で PositionChanged コードを呼び出す必要があります。

于 2012-06-03T15:41:22.547 に答える