iOS 9 - 位置后台更新仅在第二次推送到后台时发生

iOS 9 - Location background updates only happening on second push to background

在 iOS9 中,当应用程序进入后台时(设置了所有适当的后台处理标志等,包括新的 allowsBackgroundLocationUpdates 属性),位置管理器报告更新 10 秒然后睡觉。将应用程序返回前台并再次返回后台后,更新按预期持续工作。

这仅发生在 iOS9(非测试版)中,而不是 iOS7 或 iOS8。

还有其他人遇到过这种行为吗?

设置 allowsBackgroundLocationUpdates 被记录为能够控制后台处理的运行时设置;但是,标志 不能 设置在:

applicationDidEnterBackground:

如果标记一直失败,因为无法在此方法中使用;那么它会更容易追踪,但它仅在第一次进入后台时失败。

这意味着在以下位置重置标志存在问题:

applicationWillEnterForeground:

结果是无法在方法生命周期中设置标志;因此,该标志通常在应用程序初始化时设置,这意味着该标志就目前而言并不是特别有用。