我正在为 iOS 5 编写一个基于位置的应用程序。该应用程序正在使用CLLocationManager
接收位置更新。
当应用程序启动时,我正在创建 LocationManager,调用[self.locationManager startUpdatingLocation];
并且灰色的位置箭头出现在状态栏中。
当应用程序进入后台时,我正在调用
[self.locationManager stopUpdatingLocation];
[self.locationManager startMonitoringSignificantLocationChanges];
因为我只想在应用程序处于后台时接收重大的位置更改。灰色的位置箭头仍然显示。
我在调用的应用程序中也有一个退出按钮
[self.locationManager stopUpdatingLocation];
exit(0);
当用户按下退出按钮时,应用程序完成,灰色的位置按钮从状态栏中消失。直到现在一切都很好。
当用户使用 Fast App Switcher 完成应用程序时,会出现一个问题,因为之后状态栏中仍然显示灰色的位置箭头,尽管应用程序没有运行。当用户从他的 iPhone 中删除应用程序时,灰色的位置箭头首先消失。
所以问题是:
当用户使用 Fast App Switcher 完成应用程序并且状态栏中仍显示灰色箭头时,这是否意味着位置更新仍在执行,或者这是否意味着应用程序在过去 24 小时内使用了位置服务?我猜答案是第一个,位置更新仍在执行!
应用程序需要在后台执行,所以当应用程序进入后台时我无法停止 LocationManager。
applicationWillTerminate:
当用户使用 Fast App Switcher 终止应用程序时,永远不会调用。当应用程序使用快速应用程序切换器终止或被操作系统终止时,有什么方法可以接收事件????我见过其他一些应用程序,当应用程序使用 Fast App Switcher 终止时,状态栏中的灰色箭头会消失。这些应用程序是如何实现这一点的???