1

デバイスの電源がオンになっている間、iOS がapplicationWillTerminate:バックグラウンドでアプリを自動的に終了 (呼び出し) することは可能ですか?

また、合計 3 つの他の 2 つのケースで何が起こるかにも興味があります。

  1. デバイスの電源が入っています
  2. デバイスの電源がオフになっています
  3. デバイスのバッテリーがなくなりました

applicationWillTerminate:どのくらいの頻度で呼ばれる可能性があるのか​​知りたいので質問しています。リモート通知に登録しているので、これを知りたいです。また、サーバーへのデバイス トークンの送信に失敗した場合、そのメソッドが再度呼び出される (つまり、サーバーへのデバイス トークンの送信を再試行する) 可能性を知りたいと考えています。

4

4 に答える 4

7

アプリケーションがマルチタスクをサポートしている場合 (iOS 4.0 以降にリンクされているすべてのデフォルト)、このメソッドが呼び出されることはほとんどありません。ドキュメントには、アプリケーションがバックグラウンドで実行されていて、システムが終了したい場合に呼び出される可能性があると書かれています。ただし、私の経験では、バックグラウンドでアクティブに音楽を再生している音楽アプリを実行していて、システムがすべてを放棄しているときに、これが実際に呼び出されるのを見たことがあります。バックグラウンド タスク (音楽ではなく、短期間のバックグラウンド タスク) を実行している場合、このメソッドが呼び出されずにアプリが終了するのを見てきました。

これが呼び出されることに依存することは決してありません。バックグラウンドに移行するためにデリゲート メソッドで行う必要があるすべてのクリーンアップと、バックグラウンド タスク完了ブロック (これらは少なくとも数秒間実行される前に実行されます)アプリは投棄されます)。

于 2012-04-19T14:52:04.057 に答える
5

iOS はアプリを自動的に終了できるだけでなく、ユーザーが手動で終了することもできます。実際、ユーザーがアプリを強制終了できるのは、アプリがバックグラウンドにあるときだけですさらに、アプリが「バックグラウンド」にあるときは、実際に実行されているよりも中断される可能性が高いため、フォアグラウンド アプリではないときに多くの処理を行うことに期待しないでください。

を取得する可能性-applicationWillTerminate:については、ユーザーとデバイスの使用方法によって異なります。受け取ったときは適切に処理し、それ以外の場合は自分のビジネスに取り掛かる必要があります。

于 2012-04-19T14:52:56.850 に答える
3

メモリが少なくなると、iOSはを呼び出してアプリをシャットダウンできapplicationWillTerminateます。

ドキュメントは、メソッドについて次のように述べています。

... ただし、このメソッドは、アプリケーションがバックグラウンドで実行されており (サスペンドされていない)、システムが何らかの理由でアプリケーションを終了する必要がある場合に呼び出すことができます。

于 2012-04-19T14:47:38.057 に答える
1

iOS Developer Library: iOS App Programming Guide: App Terminationを確認してください。

于 2012-04-19T15:05:59.547 に答える