1

我刚刚读到,虽然 Windows Phone 7.5 后台任务可以轮询位置,但它们实际上并没有从 GPS 实时轮询,而是位置 API 调用返回一个系统缓存的位置,该位置仅每十五分钟更新一次。

当然,这种限制会使任何在后台运行导航的尝试完全无效,因为您可能会在 15 分钟内偏离轨道,更不用说后台任务只能每 30 分钟左右运行一次!

也就是说,Nokia 的导​​航应用程序和据说 Runtastic 的应用程序在后台(即不仅仅是在锁定屏幕下)会继续跟踪,并且两者都在市场上意味着它们已获得批准,所以有人知道他们是如何设法完成 SDK 的吗据说不支持?

作为参考,我们实际上并不需要实时跟踪......也许每分钟一次左右,我们不需要那么高的准确性......也许是 100 英尺左右......但我们确实需要比我们更多被给予了。我们只是不知道他们在批准的应用程序中是如何做到的。

4

2 回答 2

5

您只能在PeriodicTask执行时检索位置(大约每 30 分钟一次,具体取决于操作系统调度)。它从中获取的位置数据GeoCoordinateWatcher将来自操作系统的缓存,而不是直接来自 GPS 硬件。如果没有任何东西在运行,操作系统将大约每 15 分钟用粗粒度数据更新一次。但是,如果应用程序已经执行并检索了细粒度 GPS 硬件数据,那么这将是您将在PeriodicTask. 您可以通过访问前台应用程序中的 GPS 并PeriodicTask使用ScheduledActionService.LaunchForTest.

于 2012-04-20T00:44:39.367 回答
0

根据我在后台任务方面的经验,您将无法通过 Periodic 或 ResourceIntensive 后台任务来实现您想要的。

尽管文档声称它们每 30 分钟运行一次,但我的经验是它们偶尔运行且不可预测。在过去的 14 小时内,我的应用程序的周期性任务总共运行了 6 次,而且每天都非常一致 - 它大约每两个小时运行一次。对于资源密集型任务,我发现它们通常每晚运行两次。我猜操作系统必须平衡手机上的所有进程和所有其他要求运行其后台任务的应用程序,所以有时你的应用程序并没有成功。显然,您的里程可能会因您的手机(在我的情况下为 lumia 800)和您安装的应用程序而异。

如果您想编写一个每分钟跟踪一次您的位置的应用程序,我的建议是通过禁用空闲检测使其能够在锁定屏幕下运行,并确保它具有较低的内存占用以延长电池寿命。

于 2012-07-06T06:41:10.900 回答