即使我的应用程序在后台运行,我也希望每隔5分钟将我的当前位置发送到php web服务。我试图做这件事,但它的工作良好,当我的应用程序在运行状态,但当我把这个应用程序在后台它停止发送数据,所以请任何好友告诉我如何在后台运行我的应用程序。如何在后台运行我的GPS应用程序?
回答
通过“在后台运行”,你的意思是在锁屏下运行吗?如果是这种情况,那么你需要设置PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
海梅罗德里格斯的职位Running a Windows Phone Application under the lock screen涵盖了这个问题。但是,如果您正在讨论在用户使用设备上的其他应用程序时继续运行的应用程序,那么这是不可能的。在操作系统的Mango构建中,您可以创建后台代理,但这些代理只能按照MSDN上所述的每30分钟运行15秒。
有官方UserVoice的论坛,Windows Phone的发展Provide an agent to track routes的请求,但即使获得通过,这将不会很长一段时间可用。
跟踪应用程序是我为生活所做的大部分工作,这样使用WP7的前景是我获得WP7的主要原因。
从功耗角度来看,传输数据是您可以做的最昂贵的事情,紧随其后的是GPS和加速度计采样。
要产生一条与道路非常吻合的轨迹,您需要更高的采样率。 WP7不会让你每秒采样一次以上。这是(只是几乎)不够快,以跟踪一辆汽车,并在这种功耗水平的电池将持续约一小时假设你在手机上登录数据,并不要尝试传输它。
您还会发现,如果您为每个样本进行传输,则您的采样间隔至少为15秒。在另一个线程上运行Web调用将无济于事,因为它需要超过一秒的时间才能完成,并且在一秒钟的采样间隔内,您将在不到一分钟的时间内用完套接字。
有解决所有这些问题。例如,在汽车中,您可以连接到车辆电源并运行。您可以在后台线程上对数据进行批处理和突发处理。
然而,这些只是每个跟踪器设计者面临的基本问题。更有趣的是空间和时间接近度的问题,测量偏离路线,如何以时间依赖的方式指定路线和地理围栏,如何将它们关联到命名集以进行规则评估以及如何将规则与命名集相关联的路线和地理栅栏。
然后是周期性聚类,它引入了所有日常噩梦,这对您的普通桌面软件开发人员来说太多了。要应用学区的速度限制,您需要知道该地区的学校假期的时区,夏令时,两个开始时间和两个停止时间以及开始和结束日期。
如果你只是为了好玩或者作为某种徒步旅行的踪迹而做这件事,那么5分钟的时间间隔会比一秒钟的采样强加更温和的电力需求,但是我仍然建议批次和爆发,因为这意味着你可以跟踪没有通信。
- 1. iPhone上的多个GPS应用程序在后台运行?
- 2. 在后台运行的GPS应用程序
- 3. 我如何让我的Android应用程序在后台运行
- 4. 如何在Android中在后台运行我的应用程序?
- 5. 如何在后台运行我的Windows Phone应用程序?
- 6. 我们如何在iOS7的后台运行应用程序
- 7. 如何让我的应用程序在后台运行?
- 8. 如何让我的应用程序在后台运行
- 9. gps应用程序的后台进程
- 10. 在后台运行的应用程序
- 11. 如何让GPS应用程序无间断地在后台运行
- 12. 如何在后台运行.NET控制台应用程序
- 13. 如何在后台运行控制台应用程序(无UI)?
- 14. 在后台运行应用程序IntentService
- 15. Android应用程序在后台运行
- 16. Android,在后台运行应用程序
- 17. 在后台运行应用程序
- 18. 在后台运行应用程序
- 19. 在后台运行iOS应用程序
- 20. iphone应用程序在后台运行?
- 21. Android在后台运行应用程序
- 22. 在后台运行应用程序Cordova
- 23. 在后台运行android应用程序?
- 24. 在后台运行应用程序
- 25. 在后台运行应用程序
- 26. 在后台运行应用程序?
- 27. WatchOS应用程序在后台运行
- 28. 在后台运行应用程序android
- 29. 运行我的后台应用程序,当我在Android中
- 30. 如何知道我的应用程序在后台或前台运行?
如上所述,在芒果中,您可以从后台任务访问位置服务,但该位置将被缓存并且每15分钟更新一次。 –
芒果的RTM支持ResourceIntensiveTask,它看起来很有前景,但事实证明它毫无用处。 –