18

現在、独自のCLLocationManagerインスタンスを使用しているコントローラーがアプリに少なくとも2つあります。ただし、複数のインスタンスを使用すると、実際に電話に追加の負担がかかる場合は、さまざまなインスタンスの追加メモリを超えて、興味があります。

iPhoneはGPSハードウェアに複数回pingを送信しますか、それともハードウェアが抽象化されてすべてのリスナーに転送されるような何らかのディスパッチを使用しますか?複数のオブザーバーを処理するために独自の抽象化レイヤーを作成しようとしていましたが、必要がないことを示唆する知識があるかどうかを確認したいと思いました。

4

1 に答える 1

14

いいえ、それは問題でもパフォーマンスの低下でもありません。1 つのアプリで CLLocationManager の複数のインスタンスを使用することは、すべて CLLocationManagers を使用してバックグラウンドで複数のアプリを使用することよりもコストがかかりません。OS は、すべての CLLocationManagers の結合された要求に基づいて、最小限の電力使用のために GPS/セル無線を構成します。

アプリがそれを必要としなくなったら (つまり、applicationWillResignActive: で)、すべての CLLocationManager インスタンスで位置情報の更新を必ず停止してください。これにより、バッテリーを節約するために GPS h/w をオフにすることができます。

于 2010-09-01T02:02:17.617 に答える