c# - Windows Phone 8 - Geolocator PositionChanged 监听器在一段时间后死亡

标签 c# mobile geolocation windows-phone-8

我在 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.disabledWindows.Devices.Geolocation.PositionStatus.notAvailable 时重新启动对象。

参见 Geolocator.StatusChanged | statuschanged event了解更多详情。

希望对你有帮助

关于c# - Windows Phone 8 - Geolocator PositionChanged 监听器在一段时间后死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16240188/

相关文章:

android - (MOBILE)图像光学识别统计元素数量

android - 如何在appBar中添加一个图标? - flutter

android - Flutter:Geolocator返回在空调用方法 'compareTo'

C# 长 Switch 语句

c# - 在 C# 中的异步函数中填充字符串数组

jquery - 在运行时更改 jQuery Mobile 按钮的字体大小

api - 如何在 Google map 中锁定国家/地区

android - 如何从 SQLite 数据库中检索用户位置特定范围内的一组位置

c# - 如何在不使用“文件下载”对话框的情况下使用 WebBrowser 控件下载文件?

c# - 将 null 替代方法传递给重载