AppleのiOS4開発者向けドキュメントは、これをすべて非常に明確に概説しています。
アプリを閉じるか、アプリから切り替えると、ほぼ即座に「一時停止」されます。つまり、OSがアプリの状態をフリーズします。ユーザーがアプリに戻ると、コードは中断された場所で実行され続けます。これを行うためにアプリにコードを追加する必要はありません。OS4に対してコンパイルするだけです。
上記はほとんどの場合に当てはまります。「一時停止」モデルが適用されない理由は2つあります。
1)デバイスのメモリが不足し始めると、OSは、しばらくの間切り替えられていない一時停止中のアプリを警告なしに終了し始めます。これが、アプリがその状態も記憶することが最善の理由です。そのため、アプリを終了してから再度開いても、中断したところから右に戻るため、ユーザーは実際には気づきません。
2)アプリは「バックグラウンド」APIの1つを使用します。これらは、オーディオ再生、VoIPサービス、または位置情報サービス用です。この場合、アプリはバックグラウンドでの実行を継続できますが、それらのAPIにのみアクセスできます。さらに、アプリは、Flickrへの写真のアップロードやビデオのレンダリングなど、アプリが一時停止または終了する前に完了する必要がある特定の長時間実行タスクを「バックグラウンドタスク」として指定できます。
「バックグラウンドタスク」方式では、タスクに時間制限があり、その後強制的に停止されるため、サーバーへのpingを無期限にカバーすることはできません。この種の機能を必要とするアプリは、以前と同様にプッシュ通知を実装することが期待されています。
これで問題が解決するはずです。全体として、これはモバイルデバイスでのマルチタスクに対する非常に洗練されたソリューションだと思います。