2012-10-06 3 views
0

나는 그러나 내가 사용하는 방법을 모른다 그래서 타이머 또는 API를 마무리 후를 증가시킬 수 방법 만 applicationDidEnterBackground 우리 모두가 사용을 beginBackgroundTaskWithExpirationHandleriPhone에서 applicationDidEnterBackground를 늘리는 방법은 무엇입니까?

을 제안 반환합니다 applicationDidEnterBackground 한 API를하지만, 오초 후 applicationDidEnterBackground 메소드가 리턴를 호출 그것은 나를 인도 할 수 있습니까?

여기 내 전화 마감 후 applicationDidEnterBackground을 반환하는 방법 중 하나가 나를 인도 할 수 내 코드

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 

    NSString *link=[NSString stringWithFormat:@"http://www.askpundit.com/dev/js_chat/getNewRequest.php?updateStatus=%@&clientid=%@",UpdateStatus,[self getSetting:@"Clientid"]]; 
    NSURLRequest *request=[[NSURLRequest alloc]initWithURL:[NSURL URLWithString:link]]; 

    NSURLConnection *connaction=[[NSURLConnection alloc] initWithRequest:request delegate:self]; 

    if (connaction) 
    { 
     responsedata=[NSMutableData data]; 

     NSLog(@"Data Saved"); 

    } 
} 

입니다.

답변

1

추측 하시려면 beginBackgroundTaskWithExpirationHandler을 사용해야합니다. 매우 간단합니다. 이 스 니펫은 최소한으로 교정되고 불완전하지만 접근법을 보여줍니다.

- (void)applicationDidEnterBackground:(UIApplication *)application { 
    _completionTask = [application beginBackgroundTaskWithExpirationHandler:^{ 
     [application endBackgroundTask:_completionTask]; 
     _completionTask = UIBackgroundTaskInvalid; 
    }]; 
    // begin your NSURLConnection, etc. 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    if(_completionTask != UIBackgroundTaskInvalid) { 
     [application endBackgroundTask:_completionTask]; 
     _completionTask = UIBackgroundTaskInvalid; 
} 
+0

안녕하세요. @NSBum 답장을 보내 주셔서 감사합니다. 그렇습니다. 답장을 보내 주셔서 감사합니다. – Ajay516