我正在处理闹钟应用,我需要每隔一分钟在后台重复一次计时器来判断闹钟的开火日期,当闹钟触发时我需要播放音频15分钟
因此,为了在后台运行计时器,我已经编写了波纹管代码,但它不起作用,在我的应用程序终止后,它工作到10分钟后, 请帮助我,我做错了什么以及我应该如何实施。
我的代码是:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
//Making background task Asynchronous
if([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)])
{
__block UIBackgroundTaskIdentifier taskId = 0; taskId =
[application beginBackgroundTaskWithExpirationHandler:^
{
taskId = UIBackgroundTaskInvalid;
}];
if(self.callTimer)
{
if([self.callTimer isValid])
[self.callTimer invalidate];
self.callTimer = nil;
}
self.callTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(recall_timer) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.callTimer forMode:NSRunLoopCommonModes];
}
}