我使用UIApplicationDidBecomeActiveNotification
/ UIApplicationWillResignActiveNotification
对计算应用运行时间。在UIApplicationDidBecomeActiveNotification
的回调中,我记录了startTime,在UIApplicationWillResignActiveNotification
的回调中,我记录了endTime。
在大多数情况下,我发现运行时间是正确的。但是在服务器的日志中有一些特殊情况,我发现运行时间很奇怪。比如结束时间小于开始时间,或者结束时间远远超过开始时间。所以我怀疑在某些时候没有调用UIApplicationDidBecomeActiveNotification
。如果有人遇到这种情况,并给我一些建议。
答案 0 :(得分:1)
如果您在视图控制器中监听UIApplicationDidBecomeActiveNotification
,则在viewDidLoad
发布之后才会调用UIApplicationDidBecomeActiveNotification
。因此,如果您在viewDidLoad
注册通知,那么您将错过第一个通知,该通知发生在视图加载之前。因此,每次您的应用程序启动时,您都会错过一个这样的通知。所有后续通知都会被捕获,包括从背景等返回。
答案 1 :(得分:-1)
UIApplicationDidBecomeActiveNotification
。我认为这是更改时间的原因。