私は実際に、アプリが毎日閉じられて開かれることを想定して、アプリのいくつかの毎日のチェックを行っています。3.1デバイスでは正常に動作します。私の質問は、iPhone4.0OSでアプリをバックグラウンドで何日間使用できるかということです。
それが長期間存続する場合、私のバックエンドサーバーに連絡するための毎日のスケジュールを作成するための最良の方法は何ですか?
iOS4のバックグラウンドはそれよりも制限されています。「タスク完了」をスケジュールできますが、実行できるのは10分間のみです。「ロケーション」バックグラウンドサービスを実行することもできますが、それはかなりの電力を使用するため、話しているようにサーバーに接続できるかどうかはわかりません。
あなたの質問に対するより直接的な答えは、それが依存するということだと思います。バックグラウンドにいるときは、いつでもアプリを閉じる準備をする必要があります。デバイスのメモリが不足すると、しばらく実行されていないアプリがすべて閉じられます。
3.1デバイスで正常に動作すると言うのはなぜですか?3.1の場合のように、スプリングボードから開いたときにアプリを更新する場合は、アプリデリゲートでapplicationWillEnterForeground:を使用して適切なコードを呼び出します。
バックグラウンドで定期的に更新する必要がある場合は、setKeepAliveTimeout:handler:とbeginBackgroundTaskWithExpirationHandlerを使用できますが、アプリストアのレビュー担当者がそれを使用して非VOIPアプリについてどのように考えるかはわかりません。