5

私は位置情報ベースの iPhone アプリケーションのパフォーマンスを最適化する方法を見つけようとしており、CLLocationManager を開始および停止することで位置情報を強制的に更新できると言う人もいます。私は得ることができる最高の精度が必要であり、私の場合、ユーザーはおそらく、歩き回る際に数秒 (たとえば 10 秒) ごとに更新を確認したいと考えています。それに応じてフィルターを設定しましたが、かなり長い間、デバイスで更新を取得できない場合があることに気付きました。

次のアプローチをテストしています。これは、一定の時間間隔が経過したときに更新を強制します (私は 20 秒を使用しています)。私の直感では、これはユーザーにより正確な更新を提供するのに実際には役立たず、CLLocationManager を常に実行したままにしておくことがおそらく最善の方法であることがわかります。

- (void)forceLocationUpdate {
    [[LocationManager locationManager] stopUpdates];
    [[LocationManager locationManager] startUpdates];
    [self performSelector:@selector(forceLocationUpdate) withObject:nil afterDelay:20.0];
}

私の質問は、CLLocationManager からの更新を強制すると、実際にコア ロケーションのパフォーマンスが向上するのでしょうか? パフォーマンスに影響はありますか? GPS 受信が良好な屋外にいる場合、これは役に立ちますか? 誰もこれを試した経験がありますか?

前もって感謝します、スティーブ

4

2 に答える 2

0

また、アプリの「近く」機能を最適化しようとしています-次のSO投稿情報が役立つことがわかりました:リンクテキスト

于 2010-04-23T08:57:46.353 に答える
0

目的の精度と距離フィルターが正しく設定されている場合、ユーザーまたはテストが更新をトリガーするのに十分なほど移動していないため、更新を取得していない可能性があります。@Nate からのコメントが言ったように、best または bestForNav に設定すると、より多くの更新を取得する可能性が高くなります。

ロケーション マネージャーをシャットダウンする本当の理由は、バッテリーを節約するためです。GPS やナビにデバイスを使用しているほとんどのユーザーは、デバイスを接続したままにしておくことを知っています。そのような目的で位置情報を使用していない場合は、位置情報を取得してシャットダウンし、別の位置情報の更新が必要になるまでバッテリーを節約することをお勧めします。 . これは、タイマーまたはブロックを介して行うことができます。主なことは、どのように操作し、できるだけ多くのバッテリーを節約できるかを考えることです.

于 2012-11-11T13:47:51.993 に答える