1

私はiPhone3G、3GS、4GをターゲットにしたiPhoneアプリを持っています。私が抱えている問題は、動作がIphone 3G&4とは異なることです(3GS iphoneでアプリをテストする機会がありませんでした)。

違いは次のとおりです。

iPhone 4の場合:

  1. 私は自分のアプリを実行し、通常どおりにプレイします。
  2. iPhoneのホームボタンをクリックすると、アプリがバックグラウンドに移動します
  3. アプリを再起動すると、最後の実行コンテキストから続行されます。

iPhone 3Gの場合:

  1. 私は自分のアプリを実行し、通常どおりにプレイします。
  2. iPhoneのホームボタンをクリックすると、アプリがバックグラウンドになりますか?!
  3. アプリを再起動すると、初めて起動したときから再起動します。

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

それとも私はこれを自分で処理する必要がありますか?

4

3 に答える 3

2

iOS4 はアプリケーションにバックグラウンド実行を追加しましたが、iPhone 3G にはありません。そのような場合は、状態を手動で保存および復元する必要があります。

Github にあるDTResurrectionKitなど、これを支援するために使用できるクラスがあります。

于 2011-06-19T12:22:18.573 に答える
2

もう少し長い説明をするには:

iOS 4.0 で、Apple はバックグラウンド アプリを導入しました。バックグラウンドを使用すると、フォアグラウンドを失ったアプリは中断されますが、開発者が何もしなくても、元の状態と同じポイントまで再アクティブ化できます。基本的に、アプリケーション VM は保存され、同じコンテキストが再作成されます。ただし、バックグラウンドで実行されているバックグラウンド アプリは、いつでも強制終了される可能性があります。

ただし、Apple は 4.0 を取得したにもかかわらず、この写真からいくつかの古いデバイスを除外しました。iPhone 3G と iPod Touch 2. Generation ではバックグラウンド アプリが有効になりませんでした。

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

于 2011-06-19T12:29:22.727 に答える
1

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

3G でサポートされている iOS 4 機能の確認は、次の場所にあります。

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

于 2011-06-19T12:21:04.917 に答える