GeoCoordinateWatcher.PositionChaged事件如何在周期性任务中工作?

时间:2012-06-03 15:28:15

标签: c# windows-phone-7.1

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会被触发吗?

1 个答案:

答案 0 :(得分:3)

没有。 下次调用OnInvoke时,您实例化一个新的GeoCoordinateWatcher,它将仅从该时刻开始提升PositionChanged事件。它不知道它早在哪里,它刚刚诞生。

您需要保存坐标并在每次OnInvoke调用时引用它,并在需要时手动调用PositionChanged代码。