0

我有一个倒计时的计时器。在最近的测试中,我注意到如果我点击主页按钮并返回应用程序,计时器就会关闭(比应有的时间更少)。

我在测试中注意到 ViewDid 和 ViewWill Appear 在重新打开应用程序时不会触发。我知道:

- (void)applicationWillEnterForeground:(UIApplication *)application

触发,但是如何使其特定于处于活动状态的 viewController 的某些部分?

4

2 回答 2

3

您可能想要applicationDidBecomeActive:and applicationWillResignActive:,它们被发送到您的应用程序委托。还发布了通知(例如UIApplicationDidBecomeActiveNotification),您可以收听。

例如,当系统警报出现时,这些也会发布。如果您只想被告知何时进入后台,请尝试applicationDidEnterBackground:applicationWillEnterForeground:

有关详细信息,请参阅有关生命周期的 Apple 文档

于 2012-01-30T20:58:03.887 回答
0

只是为了跟进,正如上面回答的问题。

我遇到了与 Eric 完全相同的问题,然后我实施了 JesseapplicationDidBecomeActive:关于在委托上使用的建议。我只是想确定所有不同的方法是如何被调用的,我发现了这个:

  1. application:didFinishLaunchingWithOptions:正如预期的那样,在一开始就被调用。
  2. viewDidLoad然后,轮到主视图控制器了。
  3. 然后viewWillAppear:被调用。
  4. 回到应用程序委托,applicationDidBecomeActive:被触发(这里我调用我reactivateTimer在主视图控制器中实现的方法)。
  5. reactivateTimer方法被执行。
  6. 最后一步是调用主视图控制器的viewDidAppear:
于 2012-02-16T00:07:52.883 回答