2011-01-27 96 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回調爲此。