OGeek|极客世界-中国程序员成长平台

标题: iphone - iOS 4 后台运行的标准位置服务的应用程序生命周期行为 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 07:57
标题: iphone - iOS 4 后台运行的标准位置服务的应用程序生命周期行为

我正在开发一个位置跟踪应用程序,该应用程序在后台使用标准位置服务和重大变化位置服务(我的应用程序在 iOS 4+ 中注册了后台位置更新)(如果适用)。感谢 this question我对从后台状态返回和从终止状态重新启动的重大变化有深刻的理解。但是,我仍然不清楚标准位置服务在这些情况下的行为方式。谁能分解在后台运行的标准位置服务的确切行为?
具体来说:

  1. 当您让标准定位服务运行并且应用暂停到后台时,它的行为如何?从我自己的测试中,我看到它将继续醒来以接收 locationManager:didUpdateToLocation:fromLocation: 上的回调(我让它从套接字发送位置,我可以在网络上看到它)。处理此回调是否有时间或内存限制?
  2. 即使我的应用终止,标准位置服务是否会继续运行?也就是说,它是否会像重大更改服务那样使用 application:didFinishLaunchingWithOptions:UIApplicationLaunchOptionsLocationKey 重新启动?我认为 CLLocationManager 在这种情况下也需要重新启动,就像重大更改服务一样。

谢谢。



Best Answer-推荐答案


回答 1 和 2,如果您已将应用注册为使用后台位置,那么您的应用不会终止并继续在后台运行,直到您执行以下操作:

[locationManager stopUpdatingLocation];

因此,没有时间或内存限制,但有电池限制。如果您的电池电量不足,所有使用 gps 的应用程序都将关闭。由于您的应用在正常情况下不会终止,因此它不需要或不会使用 UIApplicationLaunchOptionsLocationKey

重新启动(在因电池而终止后)

标准服务和重要服务的不同之处在于,当有位置更新时,重要的服务会唤醒应用程序,但标准服务会使应用程序持续运行并因此耗尽电池电量。

在选择要使用的服务之前,请考虑阅读 Location-Awareness Programming guide.

关于iphone - iOS 4 后台运行的标准位置服务的应用程序生命周期行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6284504/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4