我正在使用以下方法在Geolocator对象中设置PositionChanged监听器

var geolocator = new Geolocator();
geolocator.PositionChanged += Geolocator_PositionChanged;

它可以正常工作一段时间。但是经过一段时间没有用户交互(+-4小时)后,它停止接收位置更改,我认为是因为WP8只是杀死了它。 ms可能希望这样做,但这对于我的应用程序模型来说太可怕了。

我要做的是另外设置一个PeriodicTask并发送位置。而且运行没有问题,但是如果用户更改其位置,我将无法真正跟踪它。

问题是:是否有需要在无需用户交互的情况下唤醒此Geolocator的问题?它可以通过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/

10-11 21:36