Каковы причины зависания в приложении для iOS после возврата из фона? - PullRequest
0 голосов
/ 04 апреля 2011

Это очень сложная проблема, так как она возникает не каждый раз.

Когда приложение только запускается, возвращаясь из фона, это нормально без замораживания.После некоторого времени нахождения в фоновом режиме, когда я повторно активирую его, весь пользовательский интерфейс на некоторое время зависает, даже индикатор активности не анимируется.Со временем это замораживание становится длиннее и, наконец, приводит к тому, что приложение прекращает работу из-за того, что приложение iOS не возобновляет время.

Я хотел бы узнать, каковы общие причины, по которым приложение перестает отвечать на запросы, особенно еслиприложение поддерживает функцию фонового запуска и повторно активируется после периода нахождения в фоновом режиме.

Похоже, я пропустил некоторые фундаментальные приемы, которые следует соблюдать, чтобы избежать проблем с зависанием.

ОБНОВЛЕНИЕЯ подозреваю, что основная причина - сохранение UIImage в объекте Core Data.При запуске он не виден, однако с течением времени выполняются многочисленные saveManagedObjectContext, а на UIImage все еще ссылаются.Может быть, я должен был выслушать инструкцию не сохранять изображение в Core Data?

1 Ответ

2 голосов
/ 04 апреля 2011

проверьте ваш журнал сбоев, если вы получаете это

Коды исключений: 0x8badf00d

тогда, скорее всего, ваше приложение отнимает много времени либо во время запуска, либо во время перемещения в фоновом режиме или завершения, на самом деле приложение занимает много времени при запуске / закрытии iOS приостанавливает его и наше приложение зависает, такого времени нет в документах, но как я понял, это должно быть не более 4-5 секунд. проверьте делегат приложения applicationDidFinishLaunch или делегаты многозадачности: есть код, выполнение которого занимает много времени. Для получения дополнительной информации lokk на этих

http://developer.apple.com/library/ios/#technotes/tn2151/_index.html

http://en.wikipedia.org/wiki/Hexspeak

...