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追踪器停止工作的主要内容,如果未能解决你的问题,请参考以下文章

GPS 状态接收器在 2 周前停止工作

GPS跟踪的前台服务在一段时间后停止工作

使用 GPS 在后台运行的应用程序以及如何停止它

如何停止 WPF 中的后台工作人员?

后台服务中的 Task.Run 意外停止工作

HKObserverQuery 后台传递在调用completionHandler 后停止工作