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

时间:2015-09-30 08:13:30

标签: windows-phone-8.1 background-agents

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

为了尝试解决这个问题,我使用了this approach逐字逐句的周期性任务,它在调试模式下工作。但是,当我在一夜之间无人看管的情况下离开手机时,我在离开手机半小时后只为用户留了一个日志。没有记录更多的条目(请记住,我已经使用了测试日志条目,而不是真正的GPS信号,这意味着我只是为了测试目的而触发了简单的日志写入。)

我错过了什么吗?这不是解决此问题的有效方法。如果是这样,请你提供一个理由,因为我无法找到任何有关这种限制的文件。

1 个答案:

答案 0 :(得分:1)

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

我不确定它是否适用于您的用例,但我想到的一件事是让用户保持应用程序运行。您可以阻止手机进入低功耗状态并暂停您的应用程序(就像导航应用程序一样)。为此,请参阅PhoneApplicationService.UserIdleDetectionMode。如果这样做,请确保将屏幕设置为黑色(或大部分为黑色)并适当地使用睡眠(await Task.Delay(...))以节省电池电量。