コアの場所の更新を停止し、タイマーで再起動します
-
01-10-2019 - |
質問
電源を節約するためにコアロケーションの更新をオフにすることに対処するために、誰かが私にコードを指し示す(または貼り付ける)ことができるかどうか疑問に思っていました。
私が理解している限り、希望する精度を読み取るとすぐに、コアの場所の更新を停止する必要があります。特定の時間の後に適切な正確さを読むことができない場合は、更新も停止する必要があります(おそらくタイマーを使用します)。更新を停止するたびに、コアロケーションを再起動して新しい読書を取得するために、タイマー(約60秒)を起動する必要があります。
これをすべて行うAppleコードはありますか? Locateme、TaggedLocations、および場所のサンプルコードは、それをしていないようです。
解決
Locatemeの例には、必要なコードがあります。発射するために2番目のセレクターを作成するだけです。 locatemeは、セットアップ方法で以下を呼び出します...
[self performSelector:@selector(stopUpdatingLocation:) withObject:@"Timed Out" afterDelay:[[setupInfo objectForKey:kSetupInfoKeyTimeout] doubleValue]];
一定の時間(ksetupinfokeytimeout)の後、電話してください stopUpdatingLocation
方法nsstring = "タイミングアウト"の引数。内側 stopUpdatingLocation
方法、 [locationManager stopUpdatingLocation]
停止するようにcorelocationに伝えるために呼び出されます。
だから、あなたがする必要があるのは、このような別のセレクターを追加することだけです...
[self performSelector:@selector(timeToRestartCoreLocation) afterDelay: 60];
内側 stopUpdatingLocation
メソッド timeToRestartCoreLocation
60秒後の方法。それからあなたの中に timeToRestartCoreLocation
メソッド、呼び出し [locationManager startUpdatingLocation]
再びcorelocationを開始します。