アプリの使用を長時間停止してからアプリに戻ると、(ホーム キーを 2 回押して [X] をタップして) アプリを "終了" したり、アプリを終了したりしなかっviewDidLoad
たにもかかわらず、メソッドが再度呼び出されているように見えます。 iPhoneを再起動します。ホーム画面に移動して、しばらくしてからもう一度アプリを開くと、これは起こりません。何が起こっている?
2 に答える
1
これは、オペレーティング システムがメモリを管理する方法と、多数の異なるアプリを同時に開いた状態を処理する方法に関係しています。簡単にまとめると、アプリが長時間バックグラウンドにある場合、最終的に OS はそのアプリが非アクティブであると判断し、そのビューに関連付けられたメモリは、より必要とされる別の場所で再利用するようにマークされます。これは、viewDidUnload
View Controller のメソッドです。メソッドが呼び出されるたびviewDidUnload
に、viewDidLoad メソッドが再度呼び出されるため、ユーザーに表示される前にビューをリロードできます。
編集:
この現象が毎x
分発生することに依存することはできません。これは、OS がアクティブなアプリにより多くのメモリを必要とする場合にのみ発生します。ユーザーがアプリの使用を再開したときに常に最新の情報を取得できるようにする場合は、NSNotificationCenter を使用してUIApplicationDidBecomeActive
通知を登録します。
于 2012-11-29T01:06:59.383 に答える