私のアプリはFacebookにビデオをアップロードします。辛抱強くユーザーがアップロード中に[ホーム]ボタンをクリックしても、バックグラウンドでアップロードを完了したいと思います。iOS - バックグラウンドでロングプロセスを完了する方法
いくつか読みになった後、私はこれを試してみました:
UIBackgroundTaskIdentifier bti = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:bti];
}];
[fb requestWithGraphPath:@"me/videos"
andParams:params
andHttpMethod:@"POST"
andDelegate:self];
[[UIApplication sharedApplication] endBackgroundTask:bti];
作業がFB要求方式で行われます。動画はhttp接続経由でFacebookにアップロードされます。これは正常に動作しますが、アップロードの進行中に[ホーム]ボタンをクリックしてアプリをバックグラウンドで実行すると、アップロードは中断されます。アプリケーションをフォアグラウンドにすると、アップロードが再開されます。
私は、アップロードがバックグラウンドで終了することが予想されました。
これがうまくいくと思いますか?私はbeginBackgroundTaskのこと全体に何か間違っていますか?そのように動作するのは単純すぎるようですが、それはドキュメントが言うようなものです。
ご迷惑をおかけして申し訳ございません。
- あなたは、デリゲートのコールバックで[[UIApplication sharedApplication] endBackgroundTask:bti];
を呼び出す必要がジョン
@jhon私はバックグラウンドモードで動画をアップロードする必要があります。このコードブロックを訴えることはできますか?バックグラウンドで長時間実行されているプロセスに制限があるので、アップルが私のアプリを拒否する可能性はありますか? –