如果应用程序长时间处于后台,UIAlertView不会显示

时间:2012-05-03 11:25:04

标签: iphone ios nsnotifications

在我的(iPhone)应用程序中,我会跟踪应用程序的活动时间。如果它超过特定值(比如说15分钟),登录视图将出现给具有警报视图的用户。如果应用程序在后台运行时间过长,则此行为类似。然后,当应用再次变为活动状态时,警报视图将呈现给用户。

但问题是当应用程序在后台很长时间并且应用程序再次变为活动时,AlertView不会向用户显示。我正在使用NSNotifications来通知会话是否超时。

基本流程就像这样

启动应用程序 - >将应用程序置于背景中 - > applicationDidBecomeActive: - >检查会话是否超时 - >显示登录视图 - >发布退出通知

Receiver将显示alertview。我把接收逻辑放在app delegate和loginview中。但在这两种情况下,alertview都不会显示它是否在后台很长时间。

我的问题是我可以延迟收到通知吗?我想在登录视图出现后收到它。

1 个答案:

答案 0 :(得分:1)

接收通知是您的应用的委托方法,它将在实施的地方收到。但您可以设置不同的标志来检查应用程序是否处于活动状态。

例如在应用程序中将是resigactive

设置标志isActive = no;

并收到通知 检查isActive 设置标志hasReceivedNotification = YES; 并将数据存储到某个地方

并且在应用程序中确实变得活跃 检查应用程序是否处于活动状态并收到远程通知 设置第三个标志shouldShowAlertOnLoginView = YES; //通知数据以便显示

并在loginview上检查appDelegate.shouldShowAlertOnLoginView == YES

然后显示带数据的警报