我想问你,如果我明白的话。当我在 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 公式计算距离?谢啦。