2

(大幅な変更ではなく) 標準の位置情報サービスを使用する iPhone アプリがあります。バッテリーなどの問題は承知していますが、継続的な精度が必要です。

それは一般的にうまくいきます。plist ファイルなどで場所のバックグラウンド モードを設定しました。

ただし、デバイスを再起動してもアプリが再起動されないようです。

検索すると、重要な更新を登録するアプリは再起動 (更新が受信されたとき) に再起動されるが、標準の位置情報サービスを使用するアプリは再起動されない可能性があることを示唆する奇妙なコメントが見つかりました。

しかし、このことを明確に述べている Apple の文書 (あるいは明確で最新のサードパーティの声明さえも) を見つけることができません。誰もこれについて決定的な答えを持っていますか?

再起動後に標準の場所の更新でアプリが再起動されない場合、回避策はありますか? たとえば、シグニフィケーションの更新を使用して標準の更新をブートストラップしますか? 誰にも例がありますか?

VoIP に登録できると提案している人を見たことがありますが、VoIP はこれらのサービスを使用しないため、登録したくありません。

4

1 に答える 1

1

重要な位置情報の更新を登録するアプリは、システムの再起動時に再起動されません。ただし、新しい場所の更新が行われ、システムが以前にそれらを終了した場合は、再起動されますこれが実質的に意味することは、アプリがシステムによってバックグラウンドで終了された場合 (メモリを節約するためなど)、バックグラウンドで再起動されるということです。

Appleのドキュメントから引用するには:

これは、システムの再起動後にアプリを再起動させるVOIPキーと異なります。UIBackgroundMode

これは、Apple のアプリ プログラミング ガイドの「バックグラウンド実行」セクション (ここにリンク) に記載されています。これはかなり冗長なドキュメントなので、必要な 2 つのビットを次に示します。

UIBackgroundModes キーに voip 値を含めると、システムは、ネットワーク ソケットを管理するために、必要に応じてアプリをバックグラウンドで実行できるようにする必要があることを認識できます。このキーを持つアプリも、システムの起動直後にバックグラウンドで再起動され、VoIP サービスが常に利用できるようになります。

そして場所について:

[UIBackgroundMode ロケーション キー] は、システムがアプリを一時停止することを妨げませんが、配信する新しいロケーション データがある場合は常にアプリを起動する必要があることをシステムに伝えます。

于 2013-01-01T12:53:20.220 に答える