2013-10-08 84 views
0

我想能够设置我的应用程序将保持多长时间在后台运行。我希望能够控制我的应用在关闭后能保持活动状态的时间。有什么我可以添加到Info.plist中,可以设置,使用开关的布尔让它在后台运行或不?iOS应用程序在后台

我已阅读并发现,苹果不会让应用程序在后台继续超过10分钟时间,但我已经做了一些测试,发现其他活的应用程序,都与我相似,持续时间超过10分钟。我还发现,在10分钟之前设置和重置定时器可以绕过这个旧帖子,这是否仍然适用于iOS7,苹果是否仍然接受它?

回答

3

编辑:误解了问题。这是一个可能的选择。

 
- (void)applicationDidEnterBackground:(UIApplication *)application{ 
     UIApplication* app = [UIApplication sharedApplication]; 
     task = [app beginBackgroundTaskWithExpirationHandler:^{ 
     [app endBackgroundTask:task]; 
     task = UIBackgroundTaskInvalid; 
    }]; 
    // Start the long-running task and return immediately. 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

     // Do the work associated with the task. 
     NSLog(@"Started background task timeremaining = %f", [app backgroundTimeRemaining]); 
     // save time to NSUserdefaults 
     [[NSUserdefaults standardUserDefaults] setObject:[NSDate date] [email protected]"startDate"]; 

     [app endBackgroundTask:task]; 
     task = UIBackgroundTaskInvalid; 
    }); 

} 

- (void)applicationWillTerminate:(UIApplication *)application{ 
    [[NSUserdefaults standardUserDefaults] setObject:[NSDate date] [email protected]"terminateDate"]; 
} 

-(void)applicationDidFinishLaunching:(UIApplication)application{ 
    //get start time & terminate time & then take a diffrence 
    NSDate* temporaryDate1 = (NSDate*)[userDefaults objectForKey:@"startDate"]; 
    NSDate* temporaryDate2 = (NSDate*)[userDefaults objectForKey:@"terminateDate"]; 
    compare[temporaryDate1,temporaryDate2]; 
} 

这是一个link来检查如何比较NSDate实例。

+0

他希望能够设置应用程序在后台运行的时候,没怎么检查它的时间长短的背景。 – JonahGabriel

+0

@ Jonah.at.GoDaddy检查我的更新答案 –

+0

看起来不错,但这并保持应用从在后台,以及在10分钟后,被关停?或者这不再发生? – user2551731

相关问题