0

在我的(iPhone)应用程序中,我跟踪应用程序的活动时间。如果超过特定值(比如 15 分钟),登录视图将显示给带有警报视图的用户。如果应用程序在后台的时间过长,此行为类似。然后,当应用再次激活时,警报视图将呈现给用户。

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

基本流程是这样的

启动 App -> 将 App 置于后台 -> applicationDidBecomeActive: -> 检查会话是否超时 -> 显示登录视图 -> 发布注销通知

接收器将显示警报视图。我将接收逻辑放在应用程序委托和登录视图中。但是在这两种情况下,如果它长时间处于后台,alertview 都不会显示。

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

4

1 回答 1

1

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

例如在应用程序中

设置标志 isActive = no;

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

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

并在 loginview 检查 appDelegate.shouldShowAlertOnLoginView == YES

然后显示带有数据的警报

于 2012-05-03T11:32:04.887 回答