Мое приложение поддерживает фоновые обновления местоположения (особенно при значительном мониторинге местоположения).
Нужно ли предотвращать загрузку пользовательского интерфейса (через контроллеры и т. д.), когда я узнаю, что приложение находится в фоновом режиме (application.applicationState == UIApplicationStateBackground
)?
Мое намерение состоит в том, чтобы избежать тяжелой загрузки пользовательского интерфейса (это БОЛЬШОЕ приложение) в фоновом режиме, что может привести к потере всего ограниченного времени, которое у меня есть в фоновом режиме, чтобы фактически реагировать на обновление местоположения.
Например (в ObjC, но вопрос также для Swift), скажем, у меня есть некоторый RootViewController
, который инициализирует и содержит всю иерархию контроллеров/представлений, должен ли я в viewDidLoad
сделать:
if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
// Root view controller loaded while in background, so doing only background stuff
[self justDoBackgroundStuffWithoutUI];
} else {
// Root view controller loaded normally, so loading normal UI
[self initializeUIAndChildControllers];
}
? Или я должен просто «доверить» iOS игнорировать все эти задачи пользовательского интерфейса, потому что она будет знать, что находится в фоновом состоянии?
viewDidLoad
- я предполагаю, что это не будет игнорироваться ОС. Возможно,UIImageView
a не будут отображаться, но данные иUIImage
s действительно будут загружены. - person mllm   schedule 05.01.2017