2011-01-27 69 views
3

当用户成功登录到我的应用程序时,会话开始,在X活动时间段后,会话将超时。iPhone会话 - 闲置时超时

现在你如何检测,用户看到他的主动使用应用程序是否使用它?

1)检查每个按钮?

2)检查屏幕上的负载?

回答

5

我发现要做到这一点的最优雅的方法是使用UIApplication上的一个类别,该类别提供了sendEvent:方法,该方法重置NSTimer(在调用其超类实现之后)。如果计时器关闭,请发布通知。在任何想要对超时作出反应的地方收听通知。这样做意味着您不必通过应用程序添加代码即可在每次交互时重置计时器。

话虽如此,我同意Shaggy Frog,这不是iOS应用程序的典型行为,所以从HCI的角度来看,这通常不是一个好主意。

2

如果您问“如何定义活动”,您可以在收到触发事件后重置计时器,其回调触发“用户不活动事件”。

我不会在这里谈论你的整体设计选择,因为我不认为大多数iOS用户期望他们的应用程序以这种方式行事。考虑你的用户并谨慎行事。

+0

如果您使用NSTimer时间,您是否需要检查每个屏幕上接收到的触摸事件?也可以在屏幕更改时调用计时器进行重置,但仍然需要在每个屏幕上执行此操作 - 是否有更好的方法? – 001 2011-01-27 23:31:11

+0

@ 001您可能需要检查每个单一屏幕上的每个触摸事件。有没有更好的办法?也许。我认为更大的问题是您的基本设计决定是首先暂停;由于不活动而导致应用“超时”用户的想法很少,至多在iOS上,并且通常是用户不会期望或期望的。 – 2011-01-28 00:37:02

-1

您也可以检查applicationwillresignactive回调为此。