2012-04-24 137 views
1

我想創建一個計時器或某種類型的自動註銷用戶後x分鐘的不活動。我想以美國銀行申請的方式執行此操作。 BofA應用程序執行此操作的方式即使應用程序放入後臺,它仍會記錄時間。當達到時間限制時,將彈出一個通知,說明您正在註銷。iOS自動註銷應用程序

在應用程序進入後臺時,如何在不暫停計時器的情況下完成此任務?

回答

2

我想也許你能做的最簡單的事情就是註冊你的AppDelegate和NSNotificationCenter來監聽來自所有(或者特定的)發件人的所有事件。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resetTimer) name:nil object:nil]; 

你需要採取與傳遞nilnameobject參數小心,你會得到一噸的通知(甚至一些不是從應用的業務,即內存警告)。如果您知道或有特定事件名稱和/或對象的列表,我會在這些列表上觀察。

在你resetTimer方法,你可以簡單的撤銷上一計時器,並創建一個新的,會調用一些logout方法和伊娃設置爲當前日期/時間(即timerStart = [NSDate now];

上述步驟將照顧你的應用程序,而它在前臺。

當該應用程序背景時,定時器將退出工作。但是,當應用程序返回到前臺時,您可以計算[NSDate now]和您的timerStart iVar之間的增量。如果增量大於某個間隔,則調用logout方法。如果沒有,您可以撥打resetTimer再次啓動計時器。

編輯

如果你想轉到後臺運行的應用程序,以提醒用戶即將被註銷,你可以使用一個UILocalNotification。您可以安排一個在應用程序進入後臺時發出警報。當應用程序進入前臺時,您可以取消該通知(並執行上面提到的步驟)。

+0

這是我對如何做到這一點的想法,但是當用戶在應用程序處於後臺時超時時,它不會爲通知中心提醒。 – Bot 2012-04-25 15:17:58