我有一个倒计时的计时器。在最近的测试中,我注意到如果我点击主页按钮并返回应用程序,计时器就会关闭(比应有的时间更少)。
我在测试中注意到 ViewDid 和 ViewWill Appear 在重新打开应用程序时不会触发。我知道:
- (void)applicationWillEnterForeground:(UIApplication *)application
触发,但是如何使其特定于处于活动状态的 viewController 的某些部分?
我有一个倒计时的计时器。在最近的测试中,我注意到如果我点击主页按钮并返回应用程序,计时器就会关闭(比应有的时间更少)。
我在测试中注意到 ViewDid 和 ViewWill Appear 在重新打开应用程序时不会触发。我知道:
- (void)applicationWillEnterForeground:(UIApplication *)application
触发,但是如何使其特定于处于活动状态的 viewController 的某些部分?
您可能想要applicationDidBecomeActive:
and applicationWillResignActive:
,它们被发送到您的应用程序委托。还发布了通知(例如UIApplicationDidBecomeActiveNotification
),您可以收听。
例如,当系统警报出现时,这些也会发布。如果您只想被告知何时进入后台,请尝试applicationDidEnterBackground:
并applicationWillEnterForeground:
有关详细信息,请参阅有关生命周期的 Apple 文档。
只是为了跟进,正如上面回答的问题。
我遇到了与 Eric 完全相同的问题,然后我实施了 JesseapplicationDidBecomeActive:
关于在委托上使用的建议。我只是想确定所有不同的方法是如何被调用的,我发现了这个:
application:didFinishLaunchingWithOptions:
正如预期的那样,在一开始就被调用。viewDidLoad
然后,轮到主视图控制器了。viewWillAppear:
被调用。applicationDidBecomeActive:
被触发(这里我调用我reactivateTimer
在主视图控制器中实现的方法)。reactivateTimer
方法被执行。viewDidAppear: