私は、ユーザーのデータ入力をサーバーにアップロードする iOS アプリ (社外で構築される) を仕様化しています。デバイスがインターネットに接続されていない場合、デバイスにデータを保存し、ネットワークが再接続されたときにアップロードしたいと考えています。(このアプリは主に、ほとんどの場合切断される iPod Touch デバイスで実行されます)。
ユーザーがデバイスのロックを解除し、ネットワークが再接続された後にアプリを再度開いた場合、アプリが実行されているため、サーバーへのアップロードは簡単です。
しかし、アプリが実行されていない場合はどうなるでしょうか。「実行されていない」とは、次の 1 つ以上を意味します。
- デバイスの電源が入れ直されました
- ユーザーはデバイスをロックし、ポケットに入れています
- アプリがクラッシュしました
- ユーザーがアプリを終了しました
- ユーザーが他のアプリの使用を開始したため、アプリがフォアグラウンドで実行されなくなった
- 他のケースはありますか?
上記の場合、インターネット接続が回復した直後にローカル データがアップロードされるようにする方法 (理想的にはバッテリー効率の良い方法) はありますか? 上記のどのケースが原因でアプリが実行されないかによって、答えは異なりますか?
また、アプリが実行されていないときに上記の実行されていないケースの一部 (またはすべて) を引き続きアップロードできるようにするために、デバイスに必要な iOS の最小バージョンはありますか?
これらが明らかな初心者の質問である場合は、申し訳ありません。私は iOS の専門家ではありません。