我想創建一個計時器或某種類型的自動註銷用戶後x分鐘的不活動。我想以美國銀行申請的方式執行此操作。 BofA應用程序執行此操作的方式即使應用程序放入後臺,它仍會記錄時間。當達到時間限制時,將彈出一個通知,說明您正在註銷。iOS自動註銷應用程序
在應用程序進入後臺時,如何在不暫停計時器的情況下完成此任務?
我想創建一個計時器或某種類型的自動註銷用戶後x分鐘的不活動。我想以美國銀行申請的方式執行此操作。 BofA應用程序執行此操作的方式即使應用程序放入後臺,它仍會記錄時間。當達到時間限制時,將彈出一個通知,說明您正在註銷。iOS自動註銷應用程序
在應用程序進入後臺時,如何在不暫停計時器的情況下完成此任務?
我想也許你能做的最簡單的事情就是註冊你的AppDelegate和NSNotificationCenter
來監聽來自所有(或者特定的)發件人的所有事件。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resetTimer) name:nil object:nil];
你需要採取與傳遞nil
到name
和object
參數小心,你會得到一噸的通知(甚至一些不是從應用的業務,即內存警告)。如果您知道或有特定事件名稱和/或對象的列表,我會在這些列表上觀察。
在你resetTimer
方法,你可以簡單的撤銷上一計時器,並創建一個新的,會調用一些logout
方法和伊娃設置爲當前日期/時間(即timerStart = [NSDate now];
)
上述步驟將照顧你的應用程序,而它在前臺。
當該應用程序背景時,定時器將退出工作。但是,當應用程序返回到前臺時,您可以計算[NSDate now]
和您的timerStart
iVar之間的增量。如果增量大於某個間隔,則調用logout
方法。如果沒有,您可以撥打resetTimer
再次啓動計時器。
編輯
如果你想轉到後臺運行的應用程序,以提醒用戶即將被註銷,你可以使用一個UILocalNotification
。您可以安排一個在應用程序進入後臺時發出警報。當應用程序進入前臺時,您可以取消該通知(並執行上面提到的步驟)。
這是我對如何做到這一點的想法,但是當用戶在應用程序處於後臺時超時時,它不會爲通知中心提醒。 – Bot 2012-04-25 15:17:58