我的应用支持后台位置更新(特别是具有重要的位置监控功能)。
当我确定应用程序处于后台(application.applicationState == UIApplicationStateBackground
)时,是否需要阻止UI(通过控制器等)加载?
我的目的是避免在后台加载大量的UI(它是一个大应用程序),这可能会浪费我在后台有限的时间来实际响应位置更新。
例如(在ObjC中,但问题也适用于Swift),让我说我有一些RootViewController
初始化并保存整个控制器/视图层次结构,我应该在{{ 1}}做:
viewDidLoad
?或者我应该只是信任" iOS会忽略所有这些UI任务,因为它会知道它处于后台状态吗?
答案 0 :(得分:4)
你可以忽略这些并让操作系统处理它,如果你有长时间运行的BG任务要小心,它们可能有也可能没有时间完成所以最好小心,因为它不会允许你永远地运行任务。
答案 1 :(得分:1)
在后台更新UI是不必要的,令人困惑且无效。
总结:我并不是说不做任何UI更新,每个应用都有一个甜蜜点。可能你不需要做大部分和延迟加载更改,即加载屏幕似乎是更好的方法。虽然我确信有一些我不知道的高级指南。希望其他答案能够实现。