iPhone - 区分UIApplicationDidBecomeActiveNotification通知

3
当注册UIApplicationDidEnterBackgroundNotification通知时,我注意到设备进入睡眠模式时不会触发此通知。
但是,当唤醒它时,UIApplicationDidBecomeActiveNotification通知会被触发。当从后台模式返回时也会触发。
那么,我怎样才能知道我的应用程序是从后台模式返回,还是在设备唤醒后激活的?
1个回答

4
这些不相互平衡;它们是发布在无关事件上的。我相信您想要的是当检测到您的应用从后台返回时使用UIApplicationWillEnterForegroundNotification,并在检测到某些其他情况(包括睡眠)时使用UIApplicationWillResignActiveNotification
请注意,UIApplicationWillResignActiveNotification还会显示诸如“忽略了来电”和“操作系统显示了一个不属于您的进程的警报”(例如短信)等事件。

嗯,那并不是很有效,因为两者都会在从后台返回时触发。 - Oliver
当我的手机处于睡眠模式时,它仍会接收 drawRect 更新,这会导致无用的操作和电池使用。你会如何处理? - Oliver
是的,当从后台返回时,您确实会看到两者,但是多任务处理只会显示“Background”和“Foreground”通知。 - Jonathan Grynspan
当手机处于睡眠状态时,您将看不到-drawRect:的更新。按下睡眠按钮后,手机不会立即关闭。当手机实际进入睡眠状态时,您的应用程序会停止运行。 - Jonathan Grynspan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接