【问题标题】:How to debug background location agents in Windows Phone 8如何在 Windows Phone 8 中调试后台位置代理
【发布时间】:2013-03-27 19:23:01
【问题描述】:

我目前正在开发一个应用程序,该应用程序应将设备的位置发送到服务器。我已经在后台代理上通过the MSDN articles 工作并访问了该位置。到目前为止,这有效。当我触发了一个比设置的 MovementThreshold 更远的位置变化时,我的位置就会传输到服务器。

但是,我了解到后台代理的测试可能很复杂。如果您使用模拟器,您可以很容易地经常更改设备的位置。但是在真机上,定位后台服务的空闲运行时间被限制在 30 分钟内,而命令的执行最多只需要 25 秒。用户也可以从电话的设置屏幕禁用后台代理。当代理连续崩溃两次以上时,它们也会被停用。另一个限制是inactive background agents are stopped after 4 hours,如果they don't update an apps live tile

我的应用更新了实时磁贴计数器,因此我认为我的后台代理应该可以运行长达 14 天而无需从我的应用重新启动。我从昨天到今天测试了该应用程序,并看到后台代理正在运行(从设置中查找时)。在上面的栏中还有一个可见的小点,表明程序正在访问手机的地理位置。但是,有时圆点会消失,我的后台代理会无缘无故地被杀死。

因此我的问题是:

  • 如何在真实设备上可靠地测试地理位置,而无需携带手机和连接的调试笔记本电脑出差?
  • 如何及时测试我提到的超时场景(30 分钟、4 小时、14 天)?
  • 如何检查后台代理的这两次崩溃?

【问题讨论】:

  • “我的应用程序更新了一个实时磁贴计数器,所以我认为我的后台代理应该运行长达 14 天而无需从我的应用程序重新启动”这在 WP7 上是正确的。在 WP8 上,只要磁贴固定在用户的主屏幕上,您的后台代理就不会过期(如果未固定,则适用 14 天规则)
  • 你能给我这个信息的来源吗?这意味着如果我不固定应用程序的磁贴,所有后台代理可以在 WP8 上不间断地运行长达 14 天?
  • 并非没有中断,我只是在谈论到期日期。 “每 30 分钟运行 25 秒”规则仍然适用于 WP8。另外,我的说法只是部分正确:msdn.microsoft.com/en-us/library/windowsphone/develop/…If the Tile for your app is pinned to the phone’s Start screen, the expiration time for your background agent schedule is automatically extended to two weeks whenever your background agent calls Update(ShellTileData) to update the Tile 所以你需要明确更新磁贴以推迟到期日期。
  • 好的,我正在根据 MovementTreshold 的间隔更新它,然后检查最后一次更新是否至少在 2 小时前。所以理论上我已经超出了这个 30 分钟的限制。但是您正在链接到定期任务。是不是比 WP8 特定的后台定位服务更适合定位?

标签: geolocation gps windows-phone-8 background-process background-agents


【解决方案1】:

我认为我对 WP8 如何定义后台代理做出了一些误解。新的 WP8 定位后台代理仅在应用程序运行时处于活动状态。这意味着不能使用返回按钮关闭应用程序。但是,可以使用 windows 按钮或长按返回按钮将其切换到主屏幕,以从多任务处理中访问其他应用程序。

关于我的问题:

  • 如何在真实设备上可靠地测试地理位置,而无需携带手机和连接的调试笔记本电脑出差?
  • 如何及时测试我提到的超时场景(30 分钟、4 小时、14 天)?

我仍然没有合适的解决方案。您在一定程度上受限于使用真实设备进行测试以及测试约束所需的必要时间。

  • 如何检查后台代理的这两次崩溃?

我不知道如何以编程方式检查这一点。用户可能会在手机设置的后台任务列表中将此崩溃的应用程序视为被阻止的应用程序。在我上面提供的链接的帮助下,应该有一种方法可以从此列表中检测被阻止的应用程序。

对于我的项目,我需要一个位置后台代理,即使在锁定屏幕或没有打开应用程序的情况下也能运行。因此,我使用 PeriodicAgent 要求每 30 分钟一次的位置,以便我可以将其发送到服务器。但请注意,此后台代理无法访问您的应用程序设置或类(请参阅Communication between foreground app and background agent)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多