大约每20分钟就会自动注销/杀死iPhone应用程序

时间:2012-06-23 00:35:56

标签: iphone background task

平台和版本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分钟后注销,无需用户干预即可保留在后台。

如果我评论此代码,应用程序仍然在后台,并且不会退出并保持挂起模式。

问题:

此代码有什么问题。这段代码应该做什么,不应该这样做?

0 个答案:

没有答案