ApplicationState UIApplication возвращает неправильное значение
Мое приложение выполняет фоновые выборки, чтобы обновить некоторые данные. В моем первоначальном виде контроллера viewDidLoad
метод я хочу определить, работает ли мое приложение для фоновой выборки или нет?
Я знаю, что очень легко проверить состояние приложения, используя это:
if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
return; // have a breakpoint here <----
}
Но по какой-то причине, даже когда я обычно запускаю приложение, иногда программа может достичь этой точки останова. Который означает, что applicationState
возвращается UIApplicationStateBackground
, Может быть, запуск приложения происходит в тот момент, когда запускается фоновая выборка или что-то в этом роде?
Я не хочу выполнять код, который в моем viewDidLoad
метод, когда приложение работает в фоновом режиме, поэтому мне нужно это if
блокировать в viewDidLoad
,
1 ответ
Ко времени, когда ваш метод viewDidLoad вызывается, он будет на переднем плане (с состоянием UIApplicationStateInactive или UIApplicationStateActive), поэтому нет смысла запрашивать UIApplicationStateBackground в viewDidLoad, для получения дополнительной информации прочитайте эту ссылку.