2

コアロケーションの更新をオフにして電力を節約するためのコードを誰かが教えてくれる (または貼り付ける) ことができるかどうか疑問に思っていました。

私が理解している限りでは、必要な精度の読み取り値が得られたらすぐに Core Location の更新を停止する必要があります。一定の時間が経過しても正確な読み取りが得られない場合は、更新も停止する必要があります (おそらくタイマーを使用します)。更新を停止するたびに、タイマー (約 60 秒) を起動して Core Location を再起動し、新しい測定値を取得する必要があります。

これをすべて行うAppleコードはありますか?LocateMe、TaggedLocations、および Locations のサンプル コードはそれを実行していないようです。

4

1 に答える 1

3

LocateMeの例には、必要なコードが含まれています。発射する2番目のセレクターを作成する必要があります。LocateMeは、セットアップメソッドで次のように呼び出します。

    [self performSelector:@selector(stopUpdatingLocation:) withObject:@"Timed Out" afterDelay:[[setupInfo objectForKey:kSetupInfoKeyTimeout] doubleValue]];

一定時間(kSetupInfoKeyTimeout)が経過したらstopUpdatingLocation、NSString="TimedOut"の引数であるメソッドを呼び出してください。stopUpdatingLocationメソッド内で、[locationManager stopUpdatingLocation]が呼び出され、CoreLocationに停止するように指示します。

だから、あなたがする必要があるのは、このような別のセレクターを追加することです...

[self performSelector:@selector(timeToRestartCoreLocation) afterDelay: 60];

メソッド内。60秒後stopUpdatingLocationにメソッドを呼び出します。timeToRestartCoreLocation次に、timeToRestartCoreLocationメソッド内で呼び出し[locationManager startUpdatingLocation]て、CoreLocationを再度開始します。

于 2010-04-23T14:35:05.507 に答える