5

を使用locationManagerして自分の場所を取得し、それを自分の Web サービスに更新しようとしています。

- (void)locationManager:(CLLocationManager *)manager 
didUpdateToLocation:(CLLocation *)newLocation 
fromLocation:(CLLocation *)oldLocation {
    //some code here
}

正常ですが、アプリがバックグラウンドになったり、電話の画面がロックされたりすると、位置情報の更新が一時停止することがあります。とにかく場所を取得するにはどうすればよいですか?

4

3 に答える 3

1

次の例のようなハンドラーを設定することをお勧めします。

TTLocationHandler

必要な最新性と精度に合わせてハンドラーを構成します。通知「LocationHandlerDidUpdateLocation」のリスナーを設定します。その通知の受信時に呼び出されるメソッドにデータをアップロードするためのコードを配置します。

きめ細かい詳細が必要ない場合は、重要なLocationChangeモニタリングのバッテリー節約オプションをバックグラウンドで使用することをお勧めします。その場合、info.plistにバックグラウンドモードを追加する必要はなく、リソースを不必要に浪費することもありません。アプリが起動され、ユーザーの重要な動きに対してのみメソッドが呼び出されます。ハンドラーには、バックグラウンドおよび/またはフォアグラウンドでの常時監視を要求し、最新性と精度のしきい値を設定するための構成可能なオプションがあります。

データをWebまたはローカルに応答して保存する方法の例については、LMPinTrackerクラスを参照してください。使用法の説明については、 NSTimerを使用せずにスレッドInvokeが数秒ごとに現在の座標を取得するを参照してください。

于 2012-10-24T12:42:54.330 に答える
1

それに関する完全なブログ投稿を読んでください: iPhone Background GPS: 500m まで正確ですが、人の往来には十分ではありません

チュートリアルは次のとおりです: iOS マルチタスキング: バックグラウンドの場所

于 2012-10-08T08:09:26.430 に答える
0

このキーをアプリケーションPlistに追加します

Required background modes

配列としてマークし、その上item0にこの値を追加します

App registers for location updates

アプリはバックグラウンドでも位置データを取得するようになります。

于 2012-10-24T12:51:12.300 に答える