平台和版本 iOS iPhone 4s,iOS 版本 5.1.1
问题描述每当我的应用程序被置于后台时,它大约每 20 分钟就会自动注销/终止。在我们的应用程序中,如果应用程序移至后台,我们可以上传数据。如果我注释掉这一部分,应用程序将不再被杀死。
即使没有活动或没有用户干预并且它只是坐在后台,应用程序也会被注销(被操作系统杀死)。
重现步骤请在下面找到在后台上传附件的代码片段。
-(void) endTaskWidthIdentifier:(NSNumber *)paramIdentifier{
UIBackgroundTaskIdentifier identifier = [paramIdentifier integerValue];
[[UIApplication sharedApplication] endBackgroundTask:identifier]; }
- (void)applicationDidEnterBackground:(UIApplication *)application {
backgroundTaskIdentifier = [application
beginBackgroundTaskWithExpirationHandler:^{
NSNumber *backgroundTask = [NSNumber
numberWithInteger:backgroundTaskIdentifier];
[self
performSelectorOnMainThread:@selector(endTaskWidthIdentifier:)
withObject:backgroundTask waitUntilDone:YES];
backgroundTaskIdentifier = UIBackgroundTaskInvalid;
}];
}
执行此代码后,应用程序会在 15 到 20 分钟后注销,同时保持在后台,无需用户干预。
如果我评论此代码,应用程序将保留在后台并且不会退出并保持暂停模式。
问题:
这段代码有什么问题。这段代码不应该做什么?