wp8后台gps追踪器停止工作
Posted
技术标签:
【中文标题】wp8后台gps追踪器停止工作【英文标题】:wp8 background gps tracker stop working 【发布时间】:2014-05-29 16:37:08 【问题描述】:我想为 Windows Phone 8 实现一个应用程序,以便每分钟获取设备位置数据并将其发送到服务器。
为此,我遵循了这个例子:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662935(v=vs.105).aspx
而不是使用:
App.Geolocator.MovementThreshold = 100;
我用:
App.Geolocator.ReportInterval = 1 *60 * 1000;
该应用在前台运行良好。
如果我按下 START 按钮,应用程序也能正常运行,但有以下限制:
-
如果我打开另一个应用程序,背景 gps 跟踪器将停止工作。
大约一小时或更长时间后,后台 gps 跟踪器也停止工作。
我了解到,由于某些因素,在后台运行的应用程序可能会被系统停用:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681691(v=vs.105).aspx
是否有任何方法或策略可以确保我的 gps 跟踪器在上述两种情况下继续在后台工作?目前是否有任何 wp8 应用程序在这种情况下工作?在 wp8 中是否可以这样做?
【问题讨论】:
【参考方案1】:您必须在WMAppManifest.xml
中添加此 sn-p 以保持 GPS 在后台运行:
<Tasks>
<DefaultTask Name="_default" NavigationPage="GUI/Register.xaml">
<BackgroundExecution>
<ExecutionType Name="LocationTracking" />
</BackgroundExecution>
</DefaultTask>
</Tasks>
添加这个可以在App()
的最后一行1小时后在后台运行应用程序:
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
希望这会有所帮助。
【讨论】:
我已经在我的代码中使用了这个 sn-p,你可以在我引用的第一个链接中看到:msdn.microsoft.com/en-us/library/windowsphone/develop/… - 我的应用程序在后台运行,但有我上面写的限制。 哦...请检查一下,我已经编辑了我的答案,以便您的应用能够在后台运行。 ApplicationIdleDetectionMode 解决了您的问题吗? 我已经实施了您的解决方案,但我也纠正了其他错误。我已经更正了后台 gps 服务中的一些意外错误(例如,没有互联网连接时的验证),也许这个错误导致服务停止工作。现在 gps 后台服务在四个小时内运行良好。 好的...意味着现在您可以在后台使用应用了...太棒了!!以上是关于wp8后台gps追踪器停止工作的主要内容,如果未能解决你的问题,请参考以下文章