Как сказать, было ли приложение для iPhone запущено по фону или нет
-
15-09-2020 - |
Вопрос
Мое приложение использует nsuserdefaults для хранения некоторых значений, чтобы он мог восстановить их на обновлении приложения или если указывается.Фон.Есть ли способ, которым я могу сохранить NsuserDefaults в любое время в приложении разгружать.Кроме того, метод ViewDidload имел ту же проблему, он не вызывает с фона.Что такое путь вокруг этого?
P.S.До сих пор только данные моего приложения должны сохранить, является Int для на экране.
Обновление: UiApplicationDiodenterBackgroundingNotification работает отлично с вашими предложениями!
Решение
Вы не можете сохранить данные прямо до того, как он в конечном итоге убит, но вы можете сохранить состояние «на всякий случай» в вашем ApplicationDiDidenterBackgrobground: Delage.
Там есть также applicationdiDbecomeActive:, но нет причин загружать ваши сохранения данных оттуда, поскольку когда он вызывается из приложения, который был на заднем плане, данные будут сохранены в любом случае.
Другие советы
Вы не можете сказать, было ли ваше приложение запущено с фона или нет, по крайней мере, как он в данный момент настроен, поскольку ваш делегат приложения получит ту же последовательность событий, если он запущен с Spramboard.
Как говорят, как Joost, вы должны сохранить все, что вам нужно восстановить состояние внутри приложенияDidentiDenterBackground Callback;По сути, вы должны предположить, что это последнее сообщение, которое ваше приложение получит до того, как он будет убит беспощадно убить жнецов злого процесса.
Вы должны проверить WWDC 2010 сеанс сессии , в частности, сессия 105- Принимая многозадачность на ОС iPhone, часть 1 для тщательного объяснения.