我有一个奇怪的情况,在一个按钮点击事件我添加计时器NSRunLoop应该在'x'分钟后触发。但是如果iPad在'x'分钟之前进入睡眠状态并且该计时器值达到其'x'值,那么在此之后我再次打开我的应用程序它不会显示警报。
因此,如果计时器时间到了并且iPad处于睡眠模式,它应该在我再次启动应用程序后显示警告。以下是我的代码。
NSTimer *uiTimer = [NSTimer timerWithTimeInterval:[x intValue] * 60 target:self selector:@selector(fireTheMethod:) userInfo:nil repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:uiTimer forMode:NSRunLoopCommonModes];
-(void) fireTheMethod
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
[alert show];
}
答案 0 :(得分:0)
也许你可以稍微改变一下你的逻辑?在您的应用applicationDidEnterBackground:
中,您可以使计时器无效,并保存当前时间。然后在applicationWillEnterForeground:
中,您可以获得当前时间,如果时差大于所需的时间间隔,则显示警报。