iPhone-区分UIApplicationIDBecMeactivationNotifications

iPhone-区分UIApplicationIDBecMeactivationNotifications,iphone,ios,notifications,sleep,multitasking,Iphone,Ios,Notifications,Sleep,Multitasking,在注册UIApplicationIdentinterBackgroundNotification时,我注意到当设备进入睡眠模式时不会触发此通知 但是,当唤醒它时,会触发UIApplicationIDBecMeactivateNotification。从后台模式返回时也会触发 因此,我如何知道我的应用程序是从后台模式返回,还是在设备唤醒后被激活?它们之间不平衡;它们是针对无关事件发布的。我相信当检测到您的应用程序从后台返回时,您需要UIApplicationWillEnterForegroundN

在注册UIApplicationIdentinterBackgroundNotification时,我注意到当设备进入睡眠模式时不会触发此通知

但是,当唤醒它时,会触发UIApplicationIDBecMeactivateNotification。从后台模式返回时也会触发


因此,我如何知道我的应用程序是从后台模式返回,还是在设备唤醒后被激活?

它们之间不平衡;它们是针对无关事件发布的。我相信当检测到您的应用程序从后台返回时,您需要
UIApplicationWillEnterForegroundNotification
,当检测到某些其他情况(包括睡眠)时,您需要
uiapplicationwillresignactivationfication


请注意,
UIApplicationWillResignActiveNotification
也会显示“来电被忽略”和“操作系统显示的警报不是您流程的一部分”(例如文本消息)等事件。

,当我的手机处于睡眠模式时,它仍然会接收drawRect更新,这会导致无用的操作和电池使用。你会怎么处理呢?是的,你在从后台返回时确实看到了这两种情况,但你只看到了用于多任务处理的
后台
前台
通知。当手机处于睡眠状态时,你看不到
-drawRect:
更新。按下睡眠按钮时,手机不会立即关机。当手机进入睡眠状态时,你的应用程序会停止运行。