[解決済み】iOSアプリケーションでバックグラウンドの位置情報をn分ごとに更新するにはどうすればいいですか?
2022-04-10 22:24:43
質問
iOSアプリケーションで、バックグラウンドでn分ごとに位置情報を更新する方法を探しています。 iOS 4.3を使っていますが、ジェイルブレイクされていないiPhoneでも動作するはずです。
以下のような選択肢を試しました/検討しました。
-
CLLocationManager startUpdatingLocation/startMonitoringSignificantLocationChanges
: これは設定されたプロパティに基づいてバックグラウンドで期待通りに動作しますが、n分ごとに位置情報を更新するように強制することはできないようです -
NSTimer
: アプリがフォアグラウンドで実行されているときは動作しますが、バックグラウンドタスクのために設計されていないようです。 - ローカル通知。ローカル通知はn分ごとにスケジュールできますが、現在地を取得するために何らかのコードを実行することはできません(ユーザーが通知経由でアプリを起動する必要はありません)。 また、このアプローチは、通知が使用されるべきものではないので、クリーンなアプローチとは言えません。
-
UIApplication:beginBackgroundTaskWithExpirationHandler
: 私が理解する限り、これは、"long-running"バックグラウンドプロセスを実装するのではなく、アプリがバックグラウンドに移動したときに、バックグラウンドで何らかの作業を終了するために使用されるべきです(これも時間的に制限されています)。
このようなバックグラウンドでの定期的な位置情報の更新は、どのように実装すればよいのでしょうか?
どのように解決するのですか?
Apple Developer Forumsの助けを借りて、これを実装する解決策を見つけました。
-
指定する
location background mode
-
を作成します。
NSTimer
を背景にしてUIApplication:beginBackgroundTaskWithExpirationHandler:
-
いつ
n
は より小さい よりもUIApplication:backgroundTimeRemaining
であれば、問題なく動作します。いつn
は より大きい は、そのlocation manager
は、バックグラウンドタスクが強制終了されないように、残り時間がなくなる前に再度有効化(および無効化)する必要があります。
ロケーションはバックグラウンド実行の3つのタイプのうちの1つであるため、これは機能します。 .
注:シミュレーターでテストしたところ、うまくいかず時間をロスしてしまいました。しかし、私の携帯電話では正常に動作しています。
関連
-
[解決済み] エラーです。cocoapodsでRestKitをインストール後、「サンドボックスがPodfile.lockと同期していない...」と表示される
-
[解決済み] iPhoneが使用できません。デバイスを再接続してください
-
[解決済み] 新しい Swift クラスの void 関数で予期しない非 void の戻り値が発生する。
-
[解決済み] 基本的なUIButtonをプログラムで作成するには?
-
[解決済み] MacOSとXcodeをアップデートすると、Xcode 8.1の「No matching provisioning profiles found」が表示される。
-
[解決済み] Xcode Simulatorのアニメーションをエディタで再生すると、極端に遅くなる。
-
[解決済み] ブリッジングヘッダ用のプリコンパイルヘッダの発行に失敗しました。
-
[解決済み] UIViewController viewDidLoad vs. viewWillAppear。適切な役割分担とは?
-
[解決済み] dispatch_queue_create のキュー属性とは?
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Xcode 10.2.1 Command PhaseScriptExecutionが0以外の終了コードで失敗した。
-
[解決済み] Cordova Camera iOSの問題。NOT_FOUND_ERR
-
[解決済み] UITabBar アイコンが正しく表示されない
-
[解決済み] キャッチできない例外 'NSInvalidArgumentException', reason: '-[_.AppDelegate add:]: unrecognized selector' により、アプリを終了する。
-
[解決済み] SwiftUI vs Interface Builderとストーリーボード【非公開
-
[解決済み] 警告 xcode 6 で暗黙の変換により整数の精度が失われる
-
[解決済み] 定義がSwift 2.0の旧値と矛盾する
-
[解決済み] Xcodeで実行ファイルが無効なエンタイトルメントで署名されてしまう
-
[解決済み] Swift の performSegueWithIdentifier が動作しない。
-
[解決済み] iOS 9 : ユニバーサルアプリの警告「アプリがフルスクリーンを必要としない限り、すべてのインターフェイスの向きをサポートする必要があります」。