iOS自动注销应用程序

时间:2012-04-24 22:50:43

标签: objective-c ios5

我想创建一个计时器或类似的东西,以便在 x 分钟不活动后自动注销用户。我想以美国银行申请的方式这样做。 BofA应用程序的工作方式即使将应用程序放入后台,它仍然会跟踪时间。达到时间限制时,将弹出一条通知,说明您正在退出。

如果应用程序进入后台而没有暂停计时器,怎么办呢?

1 个答案:

答案 0 :(得分:2)

我认为你可以做的最简单的事情就是用NSNotificationCenter注册你的AppDelegate来监听来自所有(或者可能是特定的)发件人的所有事件。

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

您需要注意将nil传递给nameobject参数,因为您会收到大量通知(甚至有些通知不是来自应用程序,即内存警告)。如果您知道或拥有特定事件名称和/或对象的列表,我会在这些名称和/或对象上进行观察。

resetTimer方法中,您只需使前一个计时器无效并创建一个新的计时器,它将调用某个logout方法并将iVar设置为当前日期/时间(即{{1 }})

以上步骤将在您的应用程序位于前台时处理它。

当应用程序背景化时,计时器将退出工作状态。但是,当应用返回到前台时,您可以计算timerStart = [NSDate now];[NSDate now] iVar之间的差值。如果增量大于某个间隔,则调用timerStart方法。如果没有,您只需致电logout再次启动计时器。

修改

如果您希望后台应用提醒用户即将退出,您可以使用resetTimer。您可以安排一个在应用程序进入后台时发出警报。当应用程序进入前台时,您可以取消该通知(并执行上面提到的步骤)。