导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

在后台运行 Windows Phone 8 的位置跟踪应用

2014/6/18

适用于:Windows Phone 8

在 Windows Phone 上,一次只能在前台运行一个应用。如果用户通过按“开始”按钮或启动另一应用离开当前应用,则将挂起当前应用。如果新的前台应用需要的内存多于挂起的应用,则挂起的应用可能被终止并逻辑删除。有关 Windows Phone 应用生命周期的更多信息,请参见 Windows Phone 8 的应用激活和停用。 在 Windows Phone 8 上,当用户离开之后,只要位置跟踪应用持续活跃地跟踪位置,它就可以继续在后台运行。此功能支持诸如提供逐向导航功能的应用这样的方案。有关创建在后台运行的简单应用的演练,请参见如何在 Windows Phone 8 的后台运行位置跟踪应用

说明注意:

用于在后台跟踪位置的应用自动参与“快速回收”。有关此功能的更多信息,请参见 Windows Phone 8 的快速应用回收

本节列出了在哪些情况下操作系统将禁用在后台运行的应用。停用在后台运行的应用时,将如常规前台应用程序一样引发 Deactivated 事件。您的应用可以通过检查 Reason 属性在 Deactivated 事件处理程序中查看发生停用的原因。

  • 应用停止主动跟踪位置。应用通过删除 Geolocator 类的 PositionChangedStatusChanged 事件的事件处理程序或通过调用 GeoCoordinateWatcher 类的 Stop() 方法停止跟踪位置。

  • 在用户无交互的情况下,应用已经在后台持续运行了 4 个小时。

  • 节电模式处于活动状态。

  • 设备内存量很低。

  • 用户禁用手机上的定位服务。

  • 另一应用开始在后台运行。

最好是在这些不同的情况下(例如,节电模式处于打开状态或定位服务处于禁用状态),测试您的应用。

应用在后台运行时,您可以使用有限的一组 API。有关允许的 API 的列表,请参见在 Windows Phone 8 的后台运行时可以使用的功能

对于在移动设备上运行的应用,耗电量是一个重要的考虑事项。应用在后台运行时,您可以采取一些步骤降低电池电量消耗,进而提高用户对应用的满意度。如何在 Windows Phone 8 的后台运行位置跟踪应用中所述的示例演示了在应用移至后台时,关闭不必要的功能的简单方法。

  • 最小化网络请求的次数和频率。可能的话,您应该对请求进行分组并按一分钟或更长时间的间隔批量执行它们,而不是每隔几秒钟执行单个请求。

  • 停止活动的 TimerDispatcherTimer 对象(如果它们仅用于 UI 等前台功能)。

  • 停止所有 XAML 动画。

  • 如果应用程序不再需要在后台运行,则通过删除 Geolocator 类的 PositionChangedStatusChanged 事件的事件处理程序或通过调用 GeoCoordinateWatcher 类的 Stop() 方法停止跟踪位置。

显示:
© 2015 Microsoft