2017-12-10 5 views
0

私は現在、バックグラウンドモードをサポートするアプリを開発中です。いくつか例を挙げると、私はHealthKitのバックグラウンド配信に登録しており、didEnterRegionのようなロケーションバックグラウンドイベントのためにモンタージュしています。わかっているように、これらが呼び出されると、iOSはバックグラウンドでアプリを一時的に再起動します。しかし、これが終わったら、applicationWillTerminateはバックグラウンドから呼び出されますか?そうでない場合は、アプリが終了するのを聞く方法はありますか?アプリがバックグラウンドで起動されて終了した場合、 `applicationWillTerminate`が呼び出されますか?

+0

アプリケーションは一定期間後に終了すると言われていますが、 'applicationWillTerminate'のようなメソッドが呼び出されているかどうかについては何も言及していません。 – LFHS

+0

' applicationWillTerminate'のドキュメントには、メソッドが呼び出されません。 「バックグラウンドでの実行をサポートするアプリケーションの場合、このメソッドは通常、その場合にアプリケーションがバックグラウンドに移動するため、ユーザーがアプリケーションを終了するときには呼び出されませんが、このメソッドは、 (中断されていない)バックグラウンドで実行され、何らかの理由でシステムが終了する必要があります。 – Rob

答えて

0

アプリはいつでも停止することができ、一時停止されるとそれ以上の警告なしに終了することができます。したがって、あなたはapplicationWillTerminateを得ることに頼ることはできません。アプリが終了した時点で、アプリが積極的に(フォアグラウンドまたはバックグラウンドで)実行されている場合は、そのようなメッセージが表示されると思いますが、それはわかりません。 I amあなたは終了メッセージを得ることに依存することはできません。

1

いいえ、それはできません。 applicationWillterminateは、サスペンドされていない場合に何らかの理由(通常はメモリ)でシステムを終了する必要がある場合に、バックグラウンドモードをサポートするアプリケーションでのみ呼び出されます。停止されている場合、システムはアプリに何らかの通知を送信しません。

現在のAppライフサイクルに関するより詳細なドキュメントを参照してくださいすることができます常にThe App Life Cycle Documentation

0

ありませんの!

あなたのアプリを停止させる理由はたくさんあります。例えば:システムがあなたのアプリのプロセスを予期せず殺すか、バックグラウンドでの実行をサポートするアプリケーションのためにapplicationWillTerminate()が呼び出されません。アプリがこのケースに該当するときはわからないので、この方法に頼ることはできません。このApple's document

ベース:バックグラウンド実行をサポートするアプリケーションの場合

アプリケーションは、単にその場合のバックグラウンドに移動するので、ユーザがアプリケーションを終了するとき、この方法は、 一般に呼ばれません。既に存在しています。しかし、この 方法は、アプリケーションが で背景を実行している(中断されていない)と、システムはより多くの情報については

何らかの理由で を終了する必要がある状況でと呼ばれることもありますS.O questionはいつこのメソッドが呼び出され、いつ呼び出されないかについて議論します。

関連する問題