我在我的应用程序中设置了两个计时器,它们每隔几秒重复一次。一切正常,除了何时使计时器无效。当手机被锁定时,我想使这些计时器无效,然后在手机解锁时重新创建它们。
我使用通知来实现何时使计时器无效/创建。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_didBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_willResigneActive:) name:UIApplicationWillResignActiveNotification object:nil];
这是 notify_didBecomeActive 方法包含的内容:
clockTicker = [[NSTimer scheduledTimerWithTimeInterval: 1
target: self
selector: @selector(showActivity)
userInfo: nil
repeats: YES] retain];
alarmTicker = [[NSTimer scheduledTimerWithTimeInterval: CONST_ALARMTIMER
target: self
selector: @selector(checkAndLaunchAlarm)
userInfo: nil
repeats: YES] retain];
这个 notify_willResigneActive 方法包含:
if (alarmTicker) {
[alarmTicker invalidate];
[alarmTicker release];
alarmTicker = NULL;
}
if (clockTicker) {
[clockTicker invalidate];
[clockTicker release];
clockTicker = NULL;
}
问题是,当我在第二个计时器无效时调试它时,我得到了错误。奇怪的是,如果我切换计时器的顺序(比如首先使clockTicker 无效).. 我仍然在第二个计时器上遇到错误。
我可能做错了什么?
谢谢,莱昂纳多