我在 Geolocator 对象中设置一个 PositionChanged 监听器
var geolocator = new Geolocator();
geolocator.PositionChanged += Geolocator_PositionChanged;
它在一段时间内运行良好。但是在没有用户交互的情况下(+- 4 小时)一段时间后,它停止接收位置变化,我认为是因为 WP8 简单地杀死了它。这可能是 ms 所希望的,但这对我的应用程序模型来说太糟糕了。
我所做的是另外设置一个 PeriodicTask 并发送位置。这运行没有问题,但如果用户改变了他的位置,我就无法真正跟踪它。
问题是:有没有办法在不需要用户交互的情况下唤醒这个地理定位器?它可以通过 PeriodicTask 或什至在 PositionChanged 中。
我已经尝试在 PositionChanged 委托(delegate)中实例化一个新的 Geolocator,但这不起作用。
非常感谢任何帮助。谢谢!
最佳答案
这似乎是某种 GC 杀死/禁用了实例。
尝试使用 geolocator.addEventListener("statuschanged", onStatusChanged);
并在状态为 Windows.Devices.Geolocation.PositionStatus.disabled
或 Windows.Devices.Geolocation.PositionStatus.notAvailable
时重新启动对象。
参见 Geolocator.StatusChanged | statuschanged event了解更多详情。
希望对你有帮助
关于c# - Windows Phone 8 - Geolocator PositionChanged 监听器在一段时间后死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16240188/