9

新しい ios7 バックグラウンド転送 API を使用して、写真をサーバーにアップロードしようとしていました。1) バイトを s3 にアップロードする 2) サービス API を呼び出してアップロードを「完了する」

このドキュメントを見たところ、バックグラウンドの NSURLSession が「データ」タスクをサポートしていないようです。実際のアップロードが完了した後、ステップ 2 をバックグラウンドで実行できないということですか?

4

4 に答える 4

0

NSURLSessionsURLSessionDidFinishEventsForBackgroundURLSessionセッションがすべてのタスクを完了した後に呼び出されるデリゲート メソッドがあります。そこにAPI呼び出しを実行する必要があると思います。

于 2013-10-17T07:07:44.303 に答える
-2
- (void)applicationDidEnterBackground:(UIApplication *)application
{

if([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)])
{
    NSLog(@"Multitasking Supported");

    __block UIBackgroundTaskIdentifier background_task;
    background_task = [application beginBackgroundTaskWithExpirationHandler:^ {

        //Clean up code. Tell the system that we are done.
        [application endBackgroundTask: background_task];
        background_task = UIBackgroundTaskInvalid;
    }];

    //To make the code block asynchronous
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        //### background task starts
        NSLog(@"Running in the background\n");
        while(TRUE)
        {
            NSLog(@"Background time Remaining: %f",[[UIApplication sharedApplication] backgroundTimeRemaining]);
            [NSThread sleepForTimeInterval:1]; //wait for 1 sec
        }
        //#### background task ends

        //Clean up code. Tell the system that we are done.
        [application endBackgroundTask: background_task];
        background_task = UIBackgroundTaskInvalid; 
    });
}
else
{
    NSLog(@"Multitasking Not Supported");
}
}

このコードを appdelegate.m ファイルに入れます

このコードを試してみてください。

于 2013-12-06T11:03:18.790 に答える