2014-02-03 2 views
-1

У меня есть приложение, которое я хочу восстановить после того, как его убили во время работы в фоновом режиме.Восстановление из приложения, убитого в фоновом режиме - Какие методы вызываются при перезагрузке?

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

Из этого теста видно, что в этом случае на контроллере корневого представления не отображаются ни viewWillAppear, либо viewDidLoad, поэтому я не могу выполнить какой-либо код таким образом при возобновлении.

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

+0

Уверены ли вы, что он был убит? Если это так, приложение перезапускается так же, как это было новое начало ... – Wain

+0

Кажется, есть два сценария - в одном приложение перезагружается, а в другом - в корневом представлении. – GuybrushThreepwood

+0

didFinishLaunchingWithOptions делегат метод будет вызываться, когда приложение перезагружается каждый раз –

ответ

1

Если ваше приложение будет убито из-за нехватки памяти, то вы будете повторно запущены свежими. Это точно.

Если вы хотите восстановить свое состояние в этом случае, это зависит от вас.

Вы можете использовать государственные средства восстановления, встроенные в iOS 6. Я еще не использовал их, поэтому у меня нет конкретных советов для вас.

Вам необходимо каким-то образом сохранить состояние навигации (модальное VC, которое находится на экране и/или стек навигации), а также данные состояния для каждого VC, которые находятся на экране), а также любые данные состояния глобального приложения.