use*_*122 2 iphone xcode nsnotificationcenter
我在视图控制器中使用此功能来识别应用程序是否再次处于活动状态并刷新一些数据:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(becomeActive:)
name:UIApplicationWillEnterForegroundNotification
object:nil];
Run Code Online (Sandbox Code Playgroud)
这可以在激活后进行刷新,但每次应用程序从后台返回到前台(非活动状态到活动状态)时,它会再次调用该函数.
因此,如果我关闭并打开应用程序4次,该功能将被调用4次!
编辑:该函数将以这种方式调用:
但它只需要在返回前景后被调用一次.在某些情况下,应用程序必须在激活并检查数据后显示警报视图.当该功能被调用4次时,此警报视图将显示4次.
在app委托中,这个函数什么都不做,但是它被提到了.
我正在使用Xcode 4.2和iOS 5!我也用过UIApplicationDidBecomeActive,但也会导致同样的问题.
我不知道你何时将自己作为观察者加入,但每次应用变得活跃时,你似乎都会一次又一次地将自我添加为观察者.因此多次通话.
您只能将视图控制器添加为观察者一次.尝试使用控制器init:方法.并且,确保在dealloc:方法中将视图控制器作为观察者删除.