現在、iPhone でアプリケーションを開発しています。アプリには、サーバー側から定期的に情報を更新するために使用する機能があります。
アプリを閉じたときに更新プロセスを (メモリ内のどこかで) 実行し続ける方法はありますか? アプリを再起動すると情報を復元できますか?
あなたが意味するのは:
ユーザーがアプリを強制終了した場合、コードを実行し続けることは可能ですか?
その場合、答えはノーです。
しかし、あなたが意味する場合:
アプリがバックグラウンドにある間、コードを実行し続けることはできますか?
次に、UIBackgroundTaskIdentifier (ドキュメントはこちら)を使用できます。
この投稿はそれをかなりよく説明しています
ASIHTTPRequestを試してください。そのためのメソッドがあります。
このリンクから、アプリがバックグラウンドにあるときにできることには制限があります:バックグラウンド実行とマルチタスク
アプリでサポートされているバックグラウンド タスクの宣言
一部のタイプのバックグラウンド実行のサポートは、それらを使用するアプリによって事前に宣言する必要があります。アプリは、Info.plist ファイルを使用してサービスのサポートを宣言します。UIBackgroundModes キーを Info.plist ファイルに追加し、その値を次の文字列の 1 つ以上を含む配列に設定します。
audio - アプリは、バックグラウンドでユーザーに可聴コンテンツを再生します。(このコンテンツには、AirPlay を使用したストリーミング オーディオまたはビデオ コンテンツが含まれます。)
場所 - アプリは、バックグラウンドで実行されている間でも、ユーザーに自分の場所を通知します。
voip - このアプリは、ユーザーがインターネット接続を使用して電話をかける機能を提供します。
newsstand-content - このアプリは、バックグラウンドで雑誌や新聞のコンテンツをダウンロードして処理する Newsstand アプリです。
external-accessory - アプリは、外部アクセサリ フレームワークを通じて定期的なスケジュールで更新を配信する必要があるハードウェア アクセサリで動作します。
bluetooth-central - アプリは、CoreBluetooth フレームワークを通じて定期的に更新を配信する必要がある Bluetooth アクセサリと連携します。
上記の各値により、関連するイベントに応答するために適切なタイミングでアプリを起動する必要があることがシステムに通知されます。たとえば、音楽の再生を開始してからバックグラウンドに移行するアプリは、オーディオ出力バッファーを満たすために実行時間が必要です。オーディオ キーを含めると、システム フレームワークは再生を継続し、適切な間隔でアプリに必要なコールバックを行う必要があることがわかります。アプリにこのキーが含まれていない場合、アプリがバックグラウンドに移動すると、アプリによって再生されているオーディオが停止します。