是否随时调用UIApplicationDidBecomeActiveNotification?

时间:2012-07-31 06:13:22

标签: iphone objective-c

我使用UIApplicationDidBecomeActiveNotification / UIApplicationWillResignActiveNotification对计算应用运行时间。在UIApplicationDidBecomeActiveNotification的回调中,我记录了startTime,在UIApplicationWillResignActiveNotification的回调中,我记录了endTime。 在大多数情况下,我发现运行时间是正确的。但是在服务器的日志中有一些特殊情况,我发现运行时间很奇怪。比如结束时间小于开始时间,或者结束时间远远超过开始时间。所以我怀疑在某些时候没有调用UIApplicationDidBecomeActiveNotification。如果有人遇到这种情况,并给我一些建议。

2 个答案:

答案 0 :(得分:1)

如果您在视图控制器中监听UIApplicationDidBecomeActiveNotification,则在viewDidLoad发布之后才会调用UIApplicationDidBecomeActiveNotification。因此,如果您在viewDidLoad注册通知,那么您将错过第一个通知,该通知发生在视图加载之前。因此,每次您的应用程序启动时,您都会错过一个这样的通知。所有后续通知都会被捕获,包括从背景等返回。

答案 1 :(得分:-1)

每当您的应用程序从非活动状态变为活动状态时,每次应用程序从后台到forgnound.means时都会调用

UIApplicationDidBecomeActiveNotification。我认为这是更改时间的原因。