0

ユーザーが特定の場所にいるときにローカル通知をスケジュールするために、バックグラウンド ジオロケーションを使用しています。

これらの通知は商用操作へのリンクであるため、操作がその他の場合にバックグラウンドの地理位置情報をいつ無効にする必要があるかを管理するために、日付をユーザーデフォルトに保存しました。

重大な変更の監視を無効にするために、ユーザーがアプリケーションを起動する必要はありません。

だから私stopMonitoringSignificantLocationChangesCLLocationManager直接にしようとしましたlocationManager:didUpdateToLocation:fromLocation:が、うまくいきません。

何かアドバイス?この問題のベスト プラクティスは何ですか?

ありがとう。

4

1 に答える 1

0

バックグラウンド化されたアプリケーションや実行されていないアプリケーションの道路規則を考えると、ここであなたの手は幾分拘束されます.

ユーザーからの操作なしで位置情報を無効にする場合は、これが唯一のオプションです。

ユーザーのロケーションがバックグラウンドで更新されるたびに、ロケーション マネージャー デリゲートはこの更新を受け取ります。ここでは多くの処理能力が得られないため、短くて甘いものにするか、長時間実行されるバックグラウンド タスクに登録し、日付を確認し、位置情報が完了したら、監視の停止呼び出しを呼び出し、データまたはフラグをリセットします。ユーザーのデフォルトで、完了です。

ローカル通知からトリガーする場合、ユーザーはアクションを実行するために開くボタンをクリックする必要があります。バックグラウンドの場所のデリゲート メソッドから確実に通知を送信できます。しかし、それがユーザーの介入なしに何かを自動化するための唯一の道です。そこで何をするかはあなた次第です。ロケーションの更新をチェックして、バックグラウンドのデリゲート メソッドからオフにすることには問題はありません。

于 2012-12-20T17:09:11.467 に答える