将iPhone睡眠与所有其他applicationWillResignActive场景分开

时间:2011-01-30 09:49:35

标签: iphone sleep

我的应用程序支持我的用户的密码,每次应用程序从多任务处理返回或设备从睡眠状态返回时,我都会被要求显示密码。 为了确保用户看到的第一件事是pin代码屏幕,而不是看到pin代码之前的实际数据,我正在观看applicationDidEnterBackground和applicationWillResignActive方法。 问题是,在许多情况下调用applicationWillResignActive,例如当用户双击主页按钮,获取短信或推送通知时,尝试购买应用内购买请求。 有没有办法让我将所有这些案例分开并简单地识别设备的自动睡眠或当用户点击睡眠按钮时的情况?

由于

Roi的

1 个答案:

答案 0 :(得分:1)

没有直接的方法来区分您的应用进入后台模式的所有原因。但是,您可以在CFAbsoluteTimeGetCurrent()中拨打applicationWillResignActive:,保存时间戳,并检查applicationDidBecomeActive:是否有足够的时间来保证显示PIN码输入。例如,如果过了不到10秒,您可以跳过显示PIN码输入。这确实会使您的应用程序不那么安全,但随后它也会让用户少一点。

虽然这个解决方案可能看起来远非理想,但实际上,为什么您的应用程序会重新启动其活动状态并不重要。无论是什么原因,它可能会在很长一段时间后变得活跃,如果iOS决定终止它,它也可能永远不会再次活跃。