我们的应用程序需要时间从iPod的后台恢复,因此每次都会显示闪屏。当应用程序进入前台时,它会从缓存中加载一些数据,如果有大量数据需要时间。我该如何处理这种情况?我只是将这些方法放入调度队列,但没有显着的效果。
答案 0 :(得分:1)
使用调度队列并将那些耗时的方法(从缓存加载数据的方法)发送到后台。当它完成时,并说你现在需要进行一些UI更新,获取主队列并在那里更新UI
dispatch_queue_t queue = dispatch_queue_create("name for the queue", NULL);
dispatch_async(queue, ^{
//your extensive code goes here, should not involve any UI updates
//If there are any UI updates involved, uncomment the following code:
/*dispatch_async(dispatch_get_main_queue(), ^{
//UI update here, as it should always be done on main thread
});*/
});
由于您在启动期间对主线程进行了大量计算,因此您将看到启动画面。如果从缓存中加载需要很长时间,超过10秒,您的应用程序将被看门狗杀死。
你需要处理它并将它移到后台。干杯,玩得开心