Как сказать, было ли приложение для iPhone запущено фоновой обработкой или нет

Мое приложение использует NSUserDefaults для хранения некоторых значений так, чтобы это могло восстановить их на обновлении приложения или если фоновая обработка завершена. Фоновая обработка автоматически сохраняет мои целочисленные значения, но если пользователь выходит из приложения от средства запуска, числа потеряны также, и метод ViewDidUnload, который я предполагаю, не вызывает при вводе фоновой обработки. Есть ли способ, которым я могу сохранить NSUserDefaults любое время, которое разгружает приложение. Кроме того, метод ViewDidLoad имел ту же проблему, он не вызывает от фоновой обработки. Что такое путь вокруг этого?

P.S. До сих пор единственные данные, которые должно сохранить мое приложение, являются интервалом для экранного количества.

ОБНОВЛЕНИЕ: UIApplicationDidEnterBackgroundingNotification работает отлично с Вашими предложениями!

1
задан SeniorShizzle 14 July 2010 в 07:37
поделиться

2 ответа

Вы не можете сохранить данные прямо перед тем, как они в конечном итоге будут уничтожены, но вы можете сохранить состояние «на всякий случай» в своем applicationDidEnterBackground: делегат приложения.

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

1
ответ дан 2 September 2019 в 23:05
поделиться

Вы не можете сказать, было ли ваше приложение запущено из фона или нет, по крайней мере, как это настроено сейчас, поскольку делегат вашего приложения получит ту же последовательность событий, если он запущен с springboard.

Как говорит Joost, вы должны сохранить все, что вам нужно для восстановления состояния внутри обратного вызова applicationDidEnterBackground; по сути, вы должны считать, что это последнее сообщение, которое получит ваше приложение перед тем, как его безжалостно убьет злой жнец процессов.

Для получения подробного объяснения вам следует просмотреть WWDC 2010 Session Videos, в частности, Session 105 - Adopting Multitasking on iPhone OS, Part 1.

1
ответ дан 2 September 2019 в 23:05
поделиться