私は現在、バックグラウンドモードをサポートするアプリを開発中です。いくつか例を挙げると、私はHealthKit
のバックグラウンド配信に登録しており、didEnterRegion
のようなロケーションバックグラウンドイベントのためにモンタージュしています。わかっているように、これらが呼び出されると、iOSはバックグラウンドでアプリを一時的に再起動します。しかし、これが終わったら、applicationWillTerminate
はバックグラウンドから呼び出されますか?そうでない場合は、アプリが終了するのを聞く方法はありますか?アプリがバックグラウンドで起動されて終了した場合、 `applicationWillTerminate`が呼び出されますか?
答えて
アプリはいつでも停止することができ、一時停止されるとそれ以上の警告なしに終了することができます。したがって、あなたはapplicationWillTerminate
を得ることに頼ることはできません。アプリが終了した時点で、アプリが積極的に(フォアグラウンドまたはバックグラウンドで)実行されている場合は、そのようなメッセージが表示されると思いますが、それはわかりません。 I amあなたは終了メッセージを得ることに依存することはできません。
いいえ、それはできません。 applicationWillterminate
は、サスペンドされていない場合に何らかの理由(通常はメモリ)でシステムを終了する必要がある場合に、バックグラウンドモードをサポートするアプリケーションでのみ呼び出されます。停止されている場合、システムはアプリに何らかの通知を送信しません。
現在のAppライフサイクルに関するより詳細なドキュメントを参照してくださいすることができます常にThe App Life Cycle Documentation
ありませんの!
あなたのアプリを停止させる理由はたくさんあります。例えば:システムがあなたのアプリのプロセスを予期せず殺すか、バックグラウンドでの実行をサポートするアプリケーションのためにapplicationWillTerminate()
が呼び出されません。アプリがこのケースに該当するときはわからないので、この方法に頼ることはできません。このApple's documentに
ベース:バックグラウンド実行をサポートするアプリケーションの場合
アプリケーションは、単にその場合のバックグラウンドに移動するので、ユーザがアプリケーションを終了するとき、この方法は、 一般に呼ばれません。既に存在しています。しかし、この 方法は、アプリケーションが で背景を実行している(中断されていない)と、システムはより多くの情報については
何らかの理由で を終了する必要がある状況でと呼ばれることもありますS.O questionはいつこのメソッドが呼び出され、いつ呼び出されないかについて議論します。
- 1. アプリが終了したり、バックグラウンドが実装されている場合、プッシュ通知は起動しません
- 2. アプリがクラッシュすると、 'applicationWillTerminate'または 'applicationDidEnterBackground'が呼び出されますか?
- 3. Application.Run()が呼び出される前に終了(終了)とアプリケーションが呼び出されていますか?
- 4. cudaMallocが呼び出された場合、シンプルなコンソールプログラムは終了しません
- 5. - (void)applicationWillTerminate:(UIApplication *)アプリケーションがバックグラウンドからアプリを削除したときにアプリケーションが呼び出されない
- 6. applicationWillTerminate:呼び出されていない
- 7. continueUserActivityが検索終了アプリから呼び出されていません
- 8. UNUserNotificationCenter didReceiveレスポンスがアプリの終了時に呼び出されなかった
- 9. アプリケーション終了時にFirebaseMessagingService onMessageReceivedが呼び出されない(バックグラウンドではない)
- 10. アプリケーション終了時に-deallocメソッドが呼び出されますか?
- 11. アプリが終了している場合のアクティビティの呼び出し
- 12. プロセスが強制終了されてから再起動されたときにonCreateDialogが呼び出されないようにします。
- 13. アプリがバックグラウンドで再起動されるとメインキューがディスパッチされますか?
- 14. next()が呼び出されるたびにストリームを終了します
- 15. EC2インスタンスが終了状態で起動されました
- 16. Android AsyncTask - doInBackgroundが終了する前にonPostExecuteが呼び出されました。
- 17. アプリが起動、起動、または再起動されるたびに呼び出されるコードが必要です
- 18. は、アプリケーションが起動されるたびに呼び出されるdvmStartupです
- 19. Javaが起動しましたが、終了コード13で返されました
- 20. レコードが返された場合にループを終了します。
- 21. アプリがバックグラウンドで実行されるときに呼び出されるユニバーサルメソッド
- 22. applicationWillTerminateがクラッシュ時に呼び出される
- 23. applicationWillTerminateとapplicationDidEnterBackgroundが呼び出されない
- 24. UNUserNotificationCenter didRecieveレスポンスは、アプリケーションが終了した場合に呼び出されません。
- 25. アプリケーションがバックグラウンドから呼び出されたときにメソッドを呼び出す
- 26. プッシュ通知がアプリを起動しない、FinishedLaunchingが呼び出されない
- 27. iPhoneアプリの終了時に呼び出されるメソッドはありますか?
- 28. その場合、そのmapView:viewForAnnotation:が呼び出されますか?
- 29. performSegueWithIdentifierがviewDidLoadから呼び出された場合に動作しない
- 30. サービスが呼び出され、時にはサービスが呼び出されない場合があります
アプリケーションは一定期間後に終了すると言われていますが、 'applicationWillTerminate'のようなメソッドが呼び出されているかどうかについては何も言及していません。 – LFHS
' applicationWillTerminate'のドキュメントには、メソッドが呼び出されません。 「バックグラウンドでの実行をサポートするアプリケーションの場合、このメソッドは通常、その場合にアプリケーションがバックグラウンドに移動するため、ユーザーがアプリケーションを終了するときには呼び出されませんが、このメソッドは、 (中断されていない)バックグラウンドで実行され、何らかの理由でシステムが終了する必要があります。 – Rob