【问题标题】:Windows Phone 8 - Keeping background location tracking active beyond four hoursWindows Phone 8 - 保持后台位置跟踪活动超过四个小时
【发布时间】:2013-08-23 14:40:13
【问题描述】:

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

到目前为止,一切似乎都运行良好,并且在运行位置跟踪时运行正常。

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

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

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

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

有人有什么想法吗?

谢谢。

【问题讨论】:

    标签: windows-phone-8 geolocation location background-process mobile-application


    【解决方案1】:

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

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

    来源:Running location-tracking apps in the background for Windows Phone 8

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

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

    【讨论】:

    • 那是操作系统的巨大限制。猜猜这就是为什么在 WP8 上没有像谷歌纵横这样的应用程序,然后在 iOS 和 android 上!如果必须手动重新启动它,那么随着时间的推移映射您的位置就没有多大用处了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多