Получил ли совет предупреждения (слишком много многозадачных приложений в фоновом режиме)?
Пожалуйста, помогите, я не знаю, что конкретно я должен делать с didReceiveMemoryWarning. Мое приложение хорошо запустилось, но когда слишком много запущенных фоновых приложений, оно получает предупреждение о памяти и завершает работу. Я просто хочу показать предупреждение, которое просит пользователя выйти из некоторых фоновых приложений.
У меня есть appDelegate, в его окне есть представление моего viewController, у него есть другое выделенное представление (составное) с двумя подпредставлениями (XIB по сравнению с представлением OpenGL), и оно установлено как cameraOverlayView в viewController.
Я попытался выпустить весь материал в одном по предупреждению, но все же вышел. Должен ли я реализовать didReceiveMemoryWarning в каждом подпредставлении? Можно ли как-то "принудительно прекратить" процесс инициализации?
1 ответ
Если ваше приложение закрывается, когда оно активно, то у вас, вероятно, есть утечка памяти, в результате которой ваше приложение потребляет большой объем памяти.
Когда ОС начинает исчерпывать память, она завершает фоновые задачи, сначала начиная с самой интенсивной памяти, а затем, в конечном итоге, с самого переднего приложения. Пользователю никогда не нужно вручную завершать фоновые приложения для экономии памяти. Это все делается автоматически.
If your app is in the background then it can be terminated at any time. The best you can do is reduce overall memory usage and hope the OS kills some other more memory intensive apps before yours.
didReceiveMemoryWarning
is usually where you would release any cached data you have to try and reduce your app's footprint. Any view controllers in your app whose view isn't currently visible will be unloaded and the viewDidUnload
метод будет вызван. This is where you should set any IBOutlet
properties to nil.
But again if your app is being terminated while it is active, you should use the Leaks tool in Instruments to make sure you don't have any leaks and you aren't consuming an abnormally large amount of memory.