GeoCoordinateWatcher.PositionChaged事件如何在定期任务中运行?如果我有一个每隔一小时运行一次的后台代理。代码是
protected override void OnInvoke(ScheduledTask task)
{
GeoCoordinateWatcher watcher = new
GeoCoordinateWatcher(GeoPositionAccuracy.Default);
watcher.MovementThreshold = 100;
watcher.PositionChanged += _watcher_PositionChanged;
watcher.Start();
}
如果最初设备处于位置A且设备在下一个小时内行进超过100米,那么在调用onInvoke()1小时后_watcher_PositionChanged会被触发吗?
答案 0 :(得分:3)
没有。
下次调用OnInvoke
时,您实例化一个新的GeoCoordinateWatcher
,它将仅从该时刻开始提升PositionChanged
事件。它不知道它早在哪里,它刚刚诞生。
您需要保存坐标并在每次OnInvoke调用时引用它,并在需要时手动调用PositionChanged代码。