3

我正在开发一个利用操作系统提供的后台位置跟踪功能的 WP8 应用程序。这个想法是监视用户的位置并在他们靠近某些类型的地方时通知他们。

到目前为止,一切似乎都运行良好,并且在运行位置跟踪时,正如我所期望的那样。

问题是,手机似乎在大约四个小时后超时后台应用程序,停止位置跟踪。

我可以理解微软为什么这样做,以保持电池寿命等。但是,拥有一个必须每四个小时手动重新启动的后台位置跟踪应用程序并没有多大意义!如果用户选择运行这个应用程序并且意识到潜在的电池电量不足,那么它肯定应该能够无限期地运行——当然,如果系统耗尽资源或类似情况,那就足够公平了。

有人对这个有经验么?我会想到商店中一定有数百个其他应用程序遇到了这个问题?并且大概必须有某种方法来保持位置跟踪运行?

我已经尝试在跟踪运行时定期更新活动磁贴(使用 DispatcherTimer),但这似乎也不足以让应用程序保持活动状态:(

有人有想法么?

谢谢。

4

1 回答 1

3

没有办法实现您想要的行为。该应用程序将在以下任何一种情况下被停用:

  • 该应用程序停止主动跟踪位置。应用程序通过删除 Geolocator 类的 PositionChanged 和 StatusChanged 事件的事件处理程序或调用 GeoCoordinateWatcher 类的 Stop() 方法来停止跟踪位置。
  • 该应用程序已在后台运行 4 小时,无需用户交互。
  • 省电模式处于活动状态。
  • 设备内存不足。
  • 用户禁用手机上的定位服务。
  • 另一个应用程序开始在后台运行。

资料来源:在 Windows Phone 8 的后台运行位置跟踪应用程序

您可以做的是在应用程序被停用之前显示一个 toast 通知以通知用户,并让他导航回应用程序,从而将时间延长另外 4 小时。

没有任何用户交互,就无法让它运行。

于 2013-08-23T15:33:05.433 回答