【发布时间】:2012-02-13 14:00:07
【问题描述】:
我在视图控制器中使用此功能来识别应用是否再次处于活动状态并刷新一些数据:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(becomeActive:)
name:UIApplicationWillEnterForegroundNotification
object:nil];
这适用于激活后刷新,但每次应用从后台返回到前台(非活动到活动)时,它都会再次调用该函数。
所以如果我关闭并打开应用程序 4 次,该函数将被调用 4 次!
EDIT:函数会这样调用:
- 关闭和打开:函数调用了 1 次(这就是我想要的方式)
- 关闭和打开:函数调用了 2 次li>
- 关闭和打开:函数调用了 3 次
- 关闭和打开:函数调用了 4 次
但它只需要在回到前台后调用 1 次。在某些情况下,应用程序必须在激活并检查数据后显示警报视图。当函数被调用 4 次时,此警报视图将显示 4 次。
在应用程序委托中,这个函数什么都不做,但它被提及了。
我正在使用 Xcode 4.2 和 iOS 5!我也用了UIApplicationDidBecomeActive,但是也出现了同样的问题。
【问题讨论】:
-
问题是你不断添加更多的观察者,每个实例在事件发生时都会引发调用。一种或另一种方式,找出在任何时候只启用一个观察者实例。
标签: iphone xcode nsnotificationcenter