我正在使用以下方法在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.disabled
或Windows.Devices.Geolocation.PositionStatus.notAvailable
时重新启动对象。
有关更多详细信息,请参见Geolocator.StatusChanged | statuschanged event。
希望我能帮上忙
关于c# - Windows Phone 8-Geolocator PositionChanged监听器在一段时间后消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16240188/