我在許多視圖控制器中實例化了locationManager。爲了節省電池,我想停止位置管理器更新位置,所以我想在我的VC中調用viewDidUnload內的stopUpdatingLocation,但viewDidUnload在ios6中不推薦使用。有沒有一種乾淨的方式來停止所有更新位置?如何在應用程序轉到後臺時停止updupatingLocation(ios6)
謝謝! 的Cuong
我在許多視圖控制器中實例化了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
,導致對話立即消失。