편집 : 질문을 잘못 이해했습니다. 가능한 대안이 있습니다.
- (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];
}
NSDate 인스턴스를 비교하는 방법은 여기 link입니다.
그는 백그라운드에서 얼마나 오래 있었는지 확인하는 방법이 아니라 백그라운드에서 앱이 실행되는 시간을 설정할 수 있기를 원합니다. – JonahGabriel
@ Jonah.at.GoDaddy 내 업데이트 된 답변 확인 –
좋아 보이지만, 이뿐 만 아니라 백그라운드에서되고 또한 10 분 후에 폐쇄되는 애플 리케이션을 유지합니까? 아니면 더 이상 발생하지 않습니까? – user2551731