Windows phone 8.1 在Windows Phone 8.1上使用后台代理在设备重置后保存用户位置

Windows phone 8.1 在Windows Phone 8.1上使用后台代理在设备重置后保存用户位置,windows-phone-8.1,background-agents,Windows Phone 8.1,Background Agents,所以,这就是我试图用后台代理解决的问题:当用户在后台离线时,我需要继续记录用户的位置,即使在设备重置后(运行应用程序的上下文) 为了尝试解决这个问题,我使用了逐字逐句的定期任务,它在调试模式下工作。但是,由于我整晚都没有看管手机,所以在离开手机半小时后,我只有一个用户日志。没有记录更多的条目(请记住,我使用的是测试日志条目,而不是真实的GPS信号,这意味着我只是出于测试目的触发了简单的日志写入) 我错过什么了吗?这不是解决这个问题的有效方法吗。如果是这样的话,请您提供一个原因,因为我找不到任何说

所以,这就是我试图用后台代理解决的问题:当用户在后台离线时,我需要继续记录用户的位置,即使在设备重置后(运行应用程序的上下文)

为了尝试解决这个问题,我使用了逐字逐句的定期任务,它在调试模式下工作。但是,由于我整晚都没有看管手机,所以在离开手机半小时后,我只有一个用户日志。没有记录更多的条目(请记住,我使用的是测试日志条目,而不是真实的GPS信号,这意味着我只是出于测试目的触发了简单的日志写入)


我错过什么了吗?这不是解决这个问题的有效方法吗。如果是这样的话,请您提供一个原因,因为我找不到任何说明这种限制的文档。

WP 8.1上的操作系统对后台代理何时运行以及运行多长时间有一些非常严格的规则。每30分钟一次符合MSDN文档和我的观察结果。如果代码编写正确,大约每30分钟就会看到一个条目。如果你要为平板电脑编写商店应用程序,你会有更多的选择。在这里,操作系统相对于后台代理的行为有点松散(其中一些没有很好的文档记录)。由于您的目标是Win Phone,我不打算详细介绍平板电脑上的后台代理


我不确定它是否适用于您的用例,但我想到的一件事是让用户保持应用程序运行。您可以防止手机进入低功耗状态并暂停应用程序(就像导航应用程序一样)。要做到这一点,请看。如果这样做,请确保屏幕为黑色(或大部分为黑色),并适当使用睡眠(
等待任务。延迟(…)
)以节省电池电量

你能分享后台代理的代码吗?代码与链接示例完全相同,这就是为什么我没有将其粘贴在这里。谢谢你的回答,我确实浏览了这些链接,但是我的问题是,在重新启动设备后,API调用仅在前30分钟后进行一次。等待了2个小时后,我再次启动了调试器,在这行代码periodicTask=ScheduledActionService.Find(periodicTaskName)作为periodicTask之后,我发现periodicTask.LastExitReason=unhandledexception我看到了。在这种情况下,你可能知道你有一个错误。您可以在战略点放置try/catch,并将一些信息记录到文本文件中。OnInvoke方法中的所有自定义内容都已在try/catch中,并如我所说写入日志,但重新启动后,执行甚至不会到达此代码。不管怎样,谢谢你的帮助,我会继续努力的。如果我知道发生了什么,我一定会在这里发布。