0

サーバーからコンテンツをダウンロードするために使用NSURLConnectionしています (iOS 5.0 で iPad アプリケーションを使用しています)。NSURLConnectioniPadがスタンバイ状態になってもダウンロードを続けてほしい。出来ますか?

これは私のコードです:

-(void)startDownload {

    UIDevice* device = [UIDevice currentDevice];
    BOOL backgroundSupported = NO;
    if ([device respondsToSelector:@selector(isMultitaskingSupported)])
        backgroundSupported = device.multitaskingSupported;    

    NSLog(@"\n\nbackgroundSupported= %d\n\n",backgroundSupported);

    dispatch_async(dispatch_get_main_queue(), ^ {

        NSURLRequest *req = [[NSURLRequest alloc] initWithURL:imageURL];
        NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:NO];
        [conn scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
        [conn start];

        if (conn) {
            NSMutableData *data = [[NSMutableData alloc] init];
            self.receivedData = data;

        }
        else {  ... }
    }) ;

}

ありがとう!

4

1 に答える 1

1

すべてのアプリは、終了する前に約10分間バックグラウンドで実行し続けることができます。audio / gps / bluetoothなどの関連アプリなど、特定のアプリのみがバックグラウンドで実行を継続できます。詳細については、バックグラウンド実行とマルチタスク(左側の[アプリの状態とマルチタスク]セクションの下)を参照してください。

次のコードサンプルはアプリドキュメントからのものであり、接続を開始するのに役立つため、接続は最大約10分続きます-

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
        // Clean up any unfinished task business by marking where you.
        // stopped or ending the task outright.
        [application endBackgroundTask:bgTask];
        bgTask = 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, preferably in chunks.

        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    });
}
于 2012-11-09T10:08:48.777 に答える