如何在应用程序转到后台时停止updupatingLocation(ios6)
问题描述:
我在许多视图控制器中实例化了locationManager。为了节省电池,我想停止位置管理器更新位置,所以我想在我的VC中调用viewDidUnload内的stopUpdatingLocation,但viewDidUnload在ios6中不推荐使用。有没有一种干净的方式来停止所有更新位置?如何在应用程序转到后台时停止updupatingLocation(ios6)
谢谢! 的Cuong
答
可以使用UIApplicationDelegate方法:
- (void)applicationWillResignActive:(UIApplication *)application
在此方法中,你可以调用stopUpdatingLocation。
答
停在
- (void)applicationDidEnterBackground:(UIApplication *)application
{
//stop updating Location
}
答
更新位置较早的回答表明调用从applicationWillResignActive
stopUpdatingLocation
。更好的解决方案是从applicationDidEnterBackground
拨打电话。
我发现从applicationWillResignActive
调用stopUpdatingLocation
会导致出现警报,要求用户在用户可以点击任何内容之前立即消失。
发生这种情况是因为出现权限对话框时会调用applicationWillResignActive
。这将在startUpdatingLocation
之后立即调用stopUpdatingLocation
,导致对话立即消失。