在 AppDelegate 中有一个名为 applicationWillResignActive 的方法。此方法在您的应用即将发送到后台时运行。如果您可以从 AppDelegate 访问 CLLocationManager,您可以在此处停止它。否则,您可以从 applicationWillResignActive 发布通知,并且任何具有 CLLocationManager 的类都可以订阅该通知并从那里处理它。
像这样发布通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"appWillResignActive" object:nil];
并像这样订阅:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleResign:) name:@"appWillResignActive" object:nil];
然后是这样的一些方法:
- (void)handleResign: (NSNotification *)notification
{
// stop CLLocationManager
}
编辑:如果您想在应用程序被终止时运行代码,那么您可以在 AppDelegate 的此方法中运行该代码:
- (void)applicationWillTerminate:(UIApplication *)application