ジオフェンシングでできることは、1つ以上のリージョン(最大20個)を監視するようにOSに依頼することです。その後、デバイスがこの領域に入ると、OSはバックグラウンドでアプリを起動させ、あなたが何らかのタスクを実行できるようにします(通知はあなたができることの一例にすぎません)。まだ起動していない場合は、アプリを起動します。
デフォルトでは、アプリはバックグラウンドで連続して実行できないため、数分後(またはバッテリ寿命に応じてOSに依存します)、アプリはスリープ状態に戻ります。このため、アプリは通常、非常に短いタスクを実行します。
しかし、あなたのアプリがバックグラウンドで連続して実行されることが許可されている場合、そのアプリはその地域を離れてもバックグラウンドで実行され続けます。これは、デフォルトでアプリケーションが実行できるものではなく、Xcodeの機能で明示的に要求しなければならない機能です。
だから、ユーザーが自動的にアプリを再起動するためにジオフェンシングを使用できるようですね。さて、それは不可能になるもう一つのルールがあります:あなたがそれまでにユーザーによって殺された場合、システムはあなたのアプリをバックグラウンドで起きさせません。これはシステムがユーザーに与える保証です。アプリを殺すと殺され、何らかの理由でそれが再び始まらなくなります。
短いストーリー:ユーザーがあなたのアプリを抹殺した場合、再び開始する唯一の方法は、ホームスクリーン上のアイコンをタップして自分自身を起動することです。デベロッパーにとっては悪いことかもしれませんが、実際にはユーザーにとっては良いことです。
ありがとうございます!あなたは「まだ起動していなければ、あなたのアプリも起動します」と書いています。最後の2つの段落はそれが不可能だと言います。それらが矛盾しているように感じる.. – KotaBear233
本当に。多くのアプリをバックグラウンドで眠っているためにメモリが不足すると、システムはその一部を殺す権利を留保します。その場合、これはユーザーが開始したkillではないため、必要に応じてシームレスに再起動します。 – deadbeef
ホームボタンを2回タップして「古い」アプリ(しばらく使っていないアプリ)に行ってみましょう。最後の状態のスクリーンショットが表示されているので表示されますが、それが元の場所に戻ってこないことに気づくでしょう。システムがあなたに尋ねることなくそれを殺し、必要に応じて正常に再起動したからです。 – deadbeef