当我将应用程序移动到后台并将其恢复到前台时,我遇到活动指示器冻结的问题。当应用程序移动到后台时,应用程序可以通过网络加载一些数据。因此,我向用户显示活动指示器。我添加了代码以确保任务在后台完成。 当应用程序立即进入前台并且数据未完全加载时,微调器停留在屏幕上但它停止旋转。当数据完全加载时,微调器就会消失。
任何想法为什么活动指示器会冻结,以及可能的解决方案。
感谢。
答案 0 :(得分:5)
几乎没有理由让后台的应用更新其UI。
对于一个人,谁在那里看到它?指示灯冻结的另一个原因是进入后台会停止UI更新和动画,不必要地耗尽设备的电池并减慢前台应用程序的速度。
从Apple的优秀iPhone Application Programming Guide开始,只要应用程序进入前台,就会调用应用委托方法-applicationWillEnterForeground:
。
您可以在此处覆盖此方法并添加逻辑以唤醒窗口小部件。或者您订阅了您的课程(视图控制器等)以收听UIApplicationWillEnterForegroundNotification
通知。如果你监听这个通知,你可以调用一个选择器来更新UI的状态,给出当时应用程序正在做什么。