我在许多视图控制器中实例化了locationManager。为了节省电量,我想阻止位置管理器更新位置,所以我想在我的VC中调用viewDidUnload中的stopUpdatingLocation但是在ios6中不推荐使用viewDidUnload。是否有一种干净的方式让我停止所有更新位置?
谢谢! 的Cuong
答案 0 :(得分:1)
您可以使用UIApplicationDelegate方法:
- (void)applicationWillResignActive:(UIApplication *)application
在此方法中,您可以调用stopUpdatingLocation。
答案 1 :(得分:1)
停止更新
中的位置 - (void)applicationDidEnterBackground:(UIApplication *)application
{
//stop updating Location
}
答案 2 :(得分:0)
之前的回答建议从stopUpdatingLocation
拨打applicationWillResignActive
。更好的解决方案是从applicationDidEnterBackground
拨打电话。
我发现从stopUpdatingLocation
调用applicationWillResignActive
会导致警告,要求用户在用户可以点击任何内容之前立即使用该位置的权限消失。
发生这种情况是因为出现权限对话框时会调用applicationWillResignActive
。这将在stopUpdatingLocation
之后立即调用startUpdatingLocation
,导致对话框立即消失。