我的应用程序支持后台位置更新(特别是具有重要的位置监控)。
当我确定应用程序处于后台 ( application.applicationState == UIApplicationStateBackground
) 时,是否需要阻止 UI(通过控制器等)加载?
我的目的是避免在后台加载繁重的 UI(这是一个大应用程序),这可能会浪费我在后台实际响应位置更新的所有有限时间。
例如(在 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 忽略所有这些 UI 任务,因为它会知道它处于后台状态?