0

私は、5分ごとにWebServiceにデバイスの場所を通知するアプリケーションを開発しています(例):

したがって、アプリケーションがフォアグラウンド実行を離れてバックグラウンドに入るとき、タイマーを開始する必要があります。1 - デバイスの位置を更新します。2 - 位置を Web サービスに送信します。

このアクションを実行するにはどうすればよいですか? または、この設計を実現するために従うことができるコード例を知っていますか?

ご協力ありがとうございました !

4

3 に答える 3

1

誰もあなたにしっかりとした答えをくれたようには見えないので、許可してください。

バックグラウンドで 5 分 (または任意の分) のタイマーを実行する iOS 承認済みの方法はありません (アプリが VOIP または音楽でない限り)。できることは、アプリをバックグラウンドで位置情報サービスを必要とするものとして登録することです (info.plist を編集し、キー Required Background Modes を追加してから、値 App register for location updates を追加します。これが意味するのは、あなたの locationManager:didUpdateToLocation:fromLocation: です)。メソッドと対応するリージョン モニタリング/SLC メソッドは場所の変更時に起動しますが、タイマーはまったく機能しません。

その理由は、タイマーは実行ループ (コードを実行するスレッド) が実行されている必要があり、そのスレッドにピギーバックする必要があるためです。ほとんどの場合、タイマーが切れる前にコードが終了します。

お役に立てれば!

于 2012-08-05T13:43:08.093 に答える
0

これはできません (iOS では)。

(アプリがナビゲーション アプリ用のアクセス許可を要求しない限り)

于 2012-08-01T20:55:26.293 に答える