2013-03-20 5 views
5

アプリがバックグラウンドで約10分で完了すると、サスペンドモードになります。アプリは以下の2つの方法で殺すことができます:ユーザーまたはiOSによって殺されたiosアプリを確認する方法

  1. iOSはアプリを強制終了できます。このシナリオでは、「applicationWillTerminate」が呼び出されます。

  2. ユーザーが明示的にマルチタスクUIを使用してアプリケーションを殺すことができます(ダブルクリックホームボタンと押して - (赤)ボタン)。2番目のシナリオで

我々は、ユーザによって殺されているアプリを取得することができますか?

は、私は質問の下にチェックしますがノー実り多い結果: アプリケーションがサスペンド状態にある場合applicationWillTerminateアプリのiOS版またはユーザーを殺した者に関係なく呼び出されることはありませ飽きないだろうApp killed by user

+3

バックグラウンドタスクが完了したときにNSUserDefaultsフラグを設定します。次の起動時にフラグが存在しない場合、アプリはバックグラウンドタスクが終了する前に強制終了されています。 –

答えて

13

applicationWillTerminateは、アプリがバックグラウンドのときにのみ呼び出され、(iOSまたはユーザーのいずれかによって)強制終了されます。バックグラウンドという用語は、サスペンド状態ではなくバックグラウンドで実行されていることを意味します。アプリが終了していることを知っている-Lets:

ちょうどthis reference

applicationWillTerminateをお読みください。このメソッドは、アプリが停止されている場合は呼び出されません。ここ

様々な状態のテーブルは enter image description here

背景である - アプリがバックグラウンドと実行コードです。ほとんどのアプリは一時停止状態になるとすぐにこの状態に入ります。ただし、余分な実行時間を要求するアプリは、一定期間この状態にとどまることがあります。さらに、バックグラウンドに直接起動されたアプリは、非アクティブ状態の代わりにこの状態になります。バックグラウンドでコードを実行する方法については、「バックグラウンド実行」を参照してください。

+0

参照リンクが機能していません。 –

+0

編集済み - リンクを修正しました。 –

+0

アプリがバックグラウンドで放置されているときにアプリがログイントークンを失ってしまって、長い間それを開こうとすると問題が発生します。トークンは、ユーザーがアプリケーションを終了したときにのみ適切に保存されるため、アプリケーションを殺す人によって違いがあるため、applicationWillTerminateでトリックが発生していると推測します。私はドキュメントを読んだが、それでも明確ではない。何か案は?どんなデリゲートメソッドをお勧めしますか?ありがとう。 – Josh

関連する問題