2013-10-08 3 views
0

백그라운드에서 앱을 사용할 기간을 설정할 수 있습니다. 내 앱이 닫힐 때까지 내 앱이 백그라운드에서 활성 상태를 유지할 수있는 기간을 제어 할 수 있기를 원합니다. 거기에 설정할 수있는 Info.plist에 추가 할 수있는 것이 있나요? bool이 스위치를 사용하여 백그라운드에서 실행되도록 할 것인가 말 것인가?iOS 앱이 백그라운드에서 실행 중입니다.

나는 애플이 10 분 이상 배경에 애플 리케이션을 남겨 두지는 않는다는 것을 알았지 만 몇 가지 테스트를 수행하고 내 것과 비슷한 다른 라이브 앱을 발견했다. 10 분 이상 지속되었다. 또한 10 분 전에 타이머를 설정하고 재설정하여이를 우회하는 오래된 게시물을 발견했습니다. 여전히 iOS7에서 작동하며 여전히 Apple에서이를 수락합니까?

답변

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]; 
} 

NSDate 인스턴스를 비교하는 방법은 여기 link입니다.

+0

그는 백그라운드에서 얼마나 오래 있었는지 확인하는 방법이 아니라 백그라운드에서 앱이 실행되는 시간을 설정할 수 있기를 원합니다. – JonahGabriel

+0

@ Jonah.at.GoDaddy 내 업데이트 된 답변 확인 –

+0

좋아 보이지만, 이뿐 만 아니라 백그라운드에서되고 또한 10 분 후에 폐쇄되는 애플 리케이션을 유지합니까? 아니면 더 이상 발생하지 않습니까? – user2551731

관련 문제