我有一个NSTimer,当应用程序在前景中时应该可以工作,但是当应用程序进入后台时应该停止。但如果再次来到前台计时器则无法正常工作。有什么办法吗?
收件箱
(viewDidLoad){
myTimer = [NSTimer scheduledTimerWithTimeInterval: 0.60 target: self selector: @selector(saveSlow) userInfo: nil repeats: YES];
if([[NSUserDefaults standardUserDefaults] boolForKey:@"enterBG"]==YES)
{
[myTimer invalidate];
myTimer = nil;
}
....
}
enterBG
在应用程序进入前台后,您是否重置了bool值?如果不是这样,即使生成了计时器,也将在以后再次使其无效。
还有一点,您在中生成了计时器-viewDidLoad
,通常,视图生命周期只会调用一次。下次您的应用进入前台时,将不会调用它。这可能是计时器不再起作用的另一个原因。 您可以尝试将其放置 您需要手动调用代码段。-viewWillAppear:
。
还有一个建议,您最好使用相关的通知来处理计时器:
UIApplicationDidEnterBackgroundNotification
UIApplicationWillEnterForegroundNotification
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句