2

これがシナリオです。バックグラウンド/フォアグラウンドのどちらであっても、15 分ごとにユーザーの場所を使用して Web サービスをポーリングするアプリケーションが必要です。

現時点で私は:

  1. 精度が最高で距離フィルターなしでロケーションマネージャーを開始/再起動します。
  2. 希望の精度になるまで待ちます。
  3. 読書を保存する
  4. setDesiredAccuracy を次のように設定します: "kCLLocationAccuracyThreeKilometers"
  5. setDistanceFilter の値: 1000
  6. performSelector:@selector(getLocation) withObject:nil afterDelay:900 を設定します。
  7. ステップ 1 からやり直してください。

私はこれを可能な限りバッテリーを節約する方法にしたいと考えており、他のスタッカーが上記のオプションについてどう思うか、また他の提案があるかどうかを知りたい.

ありがとうジェームズ。

4

3 に答える 3

2

iOS3 を対象としていない場合は、「重要な変更」API の使用を検討してください。この種のシナリオでは最も効率的であるはずです。

于 2011-05-23T15:58:18.963 に答える
1

重要な場所の変更のためにアプリを登録して、それを使用してみませんか? たくさんのアプリが (私のものも含めて) 対応しており、非常にバッテリーに優しいです。実際、電話がセルタワーのハンドオフを行わない限り、何も起こりません。電話が何時間もどこかに置かれても、文字通りバッテリーへの影響はありません。あなたのアプローチでは、CL フレームワーク全体と GPS ハードウェアを 15 分ごとに起動する必要があります。

于 2011-05-23T15:56:43.383 に答える
0

最終的に、performSelector:WithDelayで15分ごとにロケーションマネージャーを開始/停止するアプリケーションを入手しました。

基本的に、CLLocationManagerが目的の精度内で読み取り値を示したとき、変更を意味するようにCLLocationを下げ、15分後に別の読み取り値を取得するようにアプリケーションを設定し、精度を最高の設定の1つに変更して繰り返しました。

これが将来誰かに役立つことを願っています。ありがとうジェームズ

于 2011-06-08T11:27:01.147 に答える