如果我的研究在您的应用程序处于后台时是正确的,那么它真的被暂停了。Apple 支持的后台任务方法是位置、音频和 SIP 类型的应用程序,这是正确的吗?
是否有任何 Apple 支持的方法可以在后台每 60 秒运行一次方法,我需要检查服务器的状态。以下代码可以满足我的需要,但会在 10 分钟后停止,我认为这是 Apple 支持的另一种方法。关于这是否可能的任何建议或确认都会有所帮助。
下面的代码只是创建了一个每 10 秒运行一次并更新徽章计数的任务。
问候
- (void)viewDidLoad
{
[super viewDidLoad];
count=0;
counterTask = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^{
// If you're worried about exceeding 10 minutes, handle it here
}];
theTimer=[NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(countUp)
userInfo:nil
repeats:YES];
}
- (void)countUp {
NSLog(@"%s - %d", __FUNCTION__, count + 1 );
if (count==1000) {
[theTimer invalidate];
[theTimer release];
[[UIApplication sharedApplication] endBackgroundTask:counterTask];
} else {
count++;
NSString *currentCount;
currentCount=[[NSString alloc] initWithFormat:@"%d",count];
[currentCount release];
[UIApplication sharedApplication].applicationIconBadgeNumber = count;
}
}