2011-06-19 9 views
1

私はiPhone 3G、3GS & 4Gを対象としたiphoneアプリを持っています。 私が持っている問題は、その動作がIphone 3G & 4と異なっているということです(私は3GS iPhoneで自分のアプリケーションをテストする機会がありませんでした)。バックグラウンドに行った後にアプリケーションを再開する

違いがある:iPhone 4の

  1. 私は私のアプリを実行し、私はnormalyプレー。
  2. iPhoneのホームボタンをクリックすると、アプリはバックグラウンドに移動します
  3. 私のアプリケーションをリニューアルすると、最後の実行コンテキストから続行されます。 iPhone 3Gの

  1. 私は私のアプリを実行し、私はnormalyプレー。
  2. 私はiPhoneのホームボタンをクリックするので、アプリはバックグラウンドに移動しますか?
  3. 私のアプリケーションを再起動すると、最初から起動したときから再起動します。

これはすべてのIphoneデバイスで同じ動作をする方法ですか?

これは私自身で処理する必要がありますか?

答えて

1

iOS 4.x以降を実行しているiPhone 3GSから起動するデバイスでのみ、バックグラウンドアプリがサポートされているため、iPhone 3Gで不運になっていると思います。もちろん、アプリケーションが終了して再起動時に再開したときにアプリケーションコンテキストを保存することを止めるものは何もありません。 3Gでサポート4の特徴は、ここで見つけることができるのiOSの

確認:

http://support.apple.com/kb/HT4204

2

iOS4をは、アプリケーションに実行していないiPhone 3Gのパンを背景を追加しました。そのような場合は、状態を手動で保存して復元する必要があります。

GithubにあるDTResurrectionKitなど、これを手助けするために使用できるクラスがあります。あなたはもう少し長い説明与えること

+0

が間違っています。 iPhone 3Gには背景アプリはありません。それは常にアプリを殺す。 – LordT

+0

@LordT - 良い点。私は私の答えを編集しました。 – Abizern

2

:iOSの4.0では

を、Appleはバックグラウンドのアプリを紹介。バックグラウンドでは、フォアグラウンドを失うアプリは中断されますが、開発者が何もしなくても同じ場所に再アクティブ化することができます。基本的に、アプリケーションVMは保存され、同じコンテキストが再作成されます。しかし、バックグラウンドでアプリが実行されたときに、いつでもバックグラウンドアプリが強制終了される可能性があります。

しかし、アップル社では4.0を手にしたにもかかわらず、古いデバイスをいくつか残していました。 iPhone 3GとiPod Touch 2は、バックグラウンドアプリを有効にしませんでした。

したがって、すべてのデバイスで同じまたは少なくとも同じような動作が必要な場合は、自分でロールバックする必要があります。あなたのAppdelegateの機能では、あなたが必要とする現在の位置/その他の情報をそこに保存してそこから再作成する必要があります。ApplicationWillTerminate:

関連する問題