2012-10-06 18 views
0

我稱之爲applicationDidEnterBackground一個API,但5秒鐘後applicationDidEnterBackground方法返回所以我怎麼能增加定時器或API完成後則只有applicationDidEnterBackground將返回所有我們的建議使用beginBackgroundTaskWithExpirationHandler如何增加iPhone中的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"); 

    } 
} 

任何一個可以指導我如何我的電話說完之後返回applicationDidEnterBackground

回答

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

相關問題