分かりましたらお聞きしたいです。このような BackgroundAgent のメソッド OnInvoke で GeoCoordinateWathcer を作成すると:
protected override void OnInvoke(ScheduledTask task)
{
_watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High)
{
MovementThreshold = 100
};
_watcher.PositionChanged += PositionChanged;
_watcher.Start();
}
100m 以上移動すると Task が呼び出されるため、PositionChanged は以前の位置を覚えていません。それは真実ですか?次に、PositionChanged イベントは BackgroundAgent では意味がありませんか? 100m ごとに自分の位置をアップグレードしたい場合は、以前の位置を保存し、たとえば以前の位置と現在の位置から Haversine 式で距離を計算する必要がありますか? ありがとう。