Windows phone 7 如何在后台运行GPS应用程序?

Windows phone 7 如何在后台运行GPS应用程序?,windows-phone-7,Windows Phone 7,我想在每5分钟后将我的当前位置发送到PHPWeb服务,即使我的应用程序在后台运行。我试图使这件事,但它的工作良好,当我的应用程序在运行状态,但当我把这个应用程序在后台停止发送数据,所以请任何朋友告诉我如何运行我的应用程序在后台。通过“在后台运行”,你的意思是运行时,在锁定屏幕下?如果是这种情况,则需要设置PhoneApplicationService.Current.ApplicationIdleDetectionMode=IdleDetectionMode.Disabled 杰米·罗德里格斯的

我想在每5分钟后将我的当前位置发送到PHPWeb服务,即使我的应用程序在后台运行。我试图使这件事,但它的工作良好,当我的应用程序在运行状态,但当我把这个应用程序在后台停止发送数据,所以请任何朋友告诉我如何运行我的应用程序在后台。

通过“在后台运行”,你的意思是运行时,在锁定屏幕下?如果是这种情况,则需要设置
PhoneApplicationService.Current.ApplicationIdleDetectionMode=IdleDetectionMode.Disabled

杰米·罗德里格斯的文章很好地涵盖了这个主题

但是,如果您要运行的应用程序在用户使用设备上的其他应用程序时继续运行,则这是不可能的。在操作系统的Mango构建中,您可以创建后台代理,但这些代理仅每30分钟运行一次,仅运行15秒,如中所述


官方的UserVoice论坛上有一个关于Windows Phone开发的请求,但即使被采纳,这在相当长的一段时间内都不可用。

跟踪应用程序是我谋生的主要工作,像这样使用WP7的前景是我获得它的主要原因

从功耗的角度来看,传输数据是你能做的最昂贵的事情,其次是对GPS和加速度计进行采样

要生成与道路紧密一致的轨迹,需要更高的采样率。WP7不会让您每秒采样超过一次。这(仅仅)快到足以追踪一辆汽车,并且在这种耗电水平下,假设您在手机上记录数据并且不尝试传输数据,电池将持续约一小时

您还将发现,如果您传输每个样本,您的采样间隔将至少为15秒。在另一个线程上运行web调用不会有任何帮助,因为它需要一秒钟以上的时间才能完成,并且您将在不到一分钟的时间内以1秒的采样间隔用完套接字

所有这些问题都有解决办法。例如,在机动车辆中,您可以连接到车辆电源并热运行。您可以在后台线程上批处理和突发数据

然而,这些只是每个跟踪器设计者面临的基本问题。更有趣的是空间和时间上的接近度、路线偏差的测量、如何以时间相关的方式指定路线和地理围栏、如何将它们关联到命名集以进行规则评估,以及如何将规则与命名的路线和地理围栏集相关联

然后是周期性的集群,它引入了所有日历上的噩梦,这些噩梦对你的桌面软件开发人员来说太多了。要对学校区域实施限速,您需要知道该区域的时区、夏令时、两个开始和两个停止时间以及学校假期的开始和结束日期


如果你这样做只是为了好玩,或者是为了某种徒步旅行,那么五分钟的间隔将比一秒钟的采样带来更温和的电力需求,但我仍然建议批量和突发,因为这意味着你可以跟踪没有通信的位置。

如前所述,在芒果,您可以从后台任务访问位置服务,但位置是缓存的,并且每15分钟才更新一次。而且Mango的RTM支持ResourceIntensiveTask,这看起来很有希望,但结果是没有用的。