iOS自动注销应用程序

问题描述:

我想创建一个计时器或某种类型的自动注销用户后x分钟的不活动。我想以美国银行申请的方式执行此操作。 BofA应用程序执行此操作的方式即使应用程序放入后台,它仍会记录时间。当达到时间限制时,将弹出一个通知,说明您正在注销。iOS自动注销应用程序

在应用程序进入后台时,如何在不暂停计时器的情况下完成此任务?

我想也许你能做的最简单的事情就是注册你的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