多くのView ControllerでlocationManagerをインスタンス化しました。バッテリーを節約するために、ロケーションマネージャーがロケーションを更新するのを止めたいので、VC の viewDidUnload 内で stopUpdatingLocation を呼び出すことを考えていましたが、ios6 では viewDidUnload が非推奨になりました。すべての更新場所を停止するクリーンな方法はありますか?
ありがとう!クオン
多くのView ControllerでlocationManagerをインスタンス化しました。バッテリーを節約するために、ロケーションマネージャーがロケーションを更新するのを止めたいので、VC の viewDidUnload 内で stopUpdatingLocation を呼び出すことを考えていましたが、ios6 では viewDidUnload が非推奨になりました。すべての更新場所を停止するクリーンな方法はありますか?
ありがとう!クオン
UIApplicationDelegate メソッドを使用できます。
- (void)applicationWillResignActive:(UIApplication *)application
このメソッド内で stopUpdatingLocation を呼び出すことができます。
場所の更新を停止します
- (void)applicationDidEnterBackground:(UIApplication *)application
{
//stop updating Location
}
stopUpdatingLocation以前の回答では、からの呼び出しが提案されていましapplicationWillResignActiveた。applicationDidEnterBackgroundより良い解決策は、代わりにから電話をかけることです。
stopUpdatingLocationから呼び出すapplicationWillResignActiveと、ユーザーが何かをタップできるようになる直前に、その場所を使用する許可をユーザーに求めるアラートが消えることがわかりました。
これはapplicationWillResignActive、権限ダイアログが表示されたときに が呼び出されるために発生します。stopUpdatingLocationこれは の直後に呼び出されstartUpdatingLocation、ダイアログがすぐに消えます。