2011-06-28 31 views
0

我有以下hierrachy应用程式:当任务不在AppDelegate中时,我如何在后台完成任务?

- Tab bar controller: 
    - Table view controller -> Some buttons 
    - Table view controller -> Some buttons 

当按下按钮时,用户可以具有1-10秒之间等待(取决于网络连接)。在任务完成之前,用户可以退出应用程序,当他们返回时,他们应该能够看到下载的内容。我知道I have to implement applicationDidEnterBackground()。我已经阅读了指南,但是我不明白的是,由于数据在另一个视图控制器中,我如何将它传递给应用程序委托?应用程序委托并没有完成计算所需的所有数据。此外,如果我在一半左右,我如何将它传递给应用程序委托(而不会丢失我已完成的工作)?

回答

2

注册UIApplicationDidEnterBackgroundNotification并在VC中启动任务?

+0

大概是我发布的简短版本。无需将任何内容传递给应用程序代理;请查看http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html中记录的通知(向下滚动到“通知”部分,非常靠近底部),只要您需要,注册您的控制器以听取适当的控制器。 – Tommy

+0

对不起,我缺乏有关通知的知识。因此,在我执行任务之前,我写[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(theBigTask)name:UIApplicationDidEnterBackgroundNotification object:nil];你是这个意思吗? –