如何在应用程序转到后台时停止updupatingLocation(ios6)

问题描述:

我在许多视图控制器中实例化了locationManager。为了节省电池,我想停止位置管理器更新位置,所以我想在我的VC中调用viewDidUnload内的stopUpdatingLocation,但viewDidUnload在ios6中不推荐使用。有没有一种干净的方式来停止所有更新位置?如何在应用程序转到后台时停止updupatingLocation(ios6)

谢谢! 的Cuong

可以使用UIApplicationDelegate方法:

- (void)applicationWillResignActive:(UIApplication *)application 

在此方法中,你可以调用stopUpdatingLocation。

停在

- (void)applicationDidEnterBackground:(UIApplication *)application 
    { 
    //stop updating Location 

     } 

更新位置较早的回答表明调用从applicationWillResignActivestopUpdatingLocation。更好的解决方案是从applicationDidEnterBackground拨打电话。

我发现从applicationWillResignActive调用stopUpdatingLocation会导致出现警报,要求用户在用户可以点击任何内容之前立即消失。

发生这种情况是因为出现权限对话框时会调用applicationWillResignActive。这将在startUpdatingLocation之后立即调用stopUpdatingLocation,导致对话立即消失。