私はロケーションベースのアプリに取り組んでいます。このアプリは、定義された間隔でサーバーに座標を送信する必要があります。バックグラウンドでもiPhone4で正しく動作します(バックグラウンドでのiOS HTTPリクエストを参照)。
私の友人がiOS4.2.1を搭載したiPhone3Gにインストールし、アプリをバックグラウンドに置いた後、OSによって強制終了されました。アプリには3つの画面があり、最初はログイン画面です。彼がフォアグラウンドに戻った後、ログイン画面が再び表示されます。代わりに、彼が開いたままにした画面が表示されます(つまり、アプリは強制終了され、再起動時に再起動されました)。iPhone4では期待どおりに動作します。
iPhone 3Gで、ロケーションアプリとして宣言されていてもアプリがバックグラウンドで実行されないのはなぜですか(「必要なバックグラウンドモード」は「ロケーション更新用のアプリレジスタ」に設定されています)。