0

で1つのAPIを呼び出しますapplicationDidEnterBackgroundが、applicationDidEnterBackgroundメソッドは5秒後に戻るので、タイマーを増やすにはどうすればよいですか、またはAPIが終了した後applicationDidEnterBackground、私たち全員が使用を提案するだけで返されますbeginBackgroundTaskWithExpirationHandler

しかし、私はそれを使用する方法がわかりません誰もが私を導くことができますか?

これが私のコードです

- (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通話が終了した後、どのように戻るかを誰かに教えてもらえますか。

4

1 に答える 1

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;
}
于 2012-10-06T10:27:25.680 に答える