大きなビデオをAmazon S3バケットにアップロードする必要があるアプリケーションがあります。 NSOperationQueueによって調整されたNSOperationsを使用して、並行タスクを実行しています。バックグラウンドを拡張するアップロード中にタスクのタイムアウト期間が大きいビデオiOS
小さい動画(200Mbより小さいサイズ)をアップロードするときに問題はありません。 しかし、問題は、大量の動画をアップロードしようとすると、10分後にアップロード処理が中断されたためです。
私はすでにbeginBackgroundTaskWithExpirationHandler:^
を使用して10分のウィンドウを取得しています。このタイムアウト期間を延長できる適切な方法は何ですか?
私は何とかこのタイムアウトを延長できたら、Appleはこのアプリケーションを拒否しますか?
現在、私は私がリンクに私はバックグラウンドタスクが中断決して得ないことがわかり、コードのこの部分ではiPhone - Backgrounding to poll for events
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication* app = [UIApplication sharedApplication];
dispatch_block_t expirationHandler;
expirationHandler = ^{
bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
};
bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
}
を参照建て、私のAppDelegate
に次のコードを持っています。期限切れハンドラの中でわかるように、私は無限に実行中のタスクにつながる別のバックグラウンドタスクイベントを開始しました。アップロードが完了したらバックグラウンドタスクを終了するロジックを書くことはできますが、私はこのアプローチに疑問を抱いています。
あなたはどう思いますか?
どのような方法でもハックですか? Appleはアプローチに従うためにアプリを拒否しますか?
bgTask = [アプリケーションbeginBackgroundTaskWithExpirationHandler:^(void){ [self.queue waitUntilAllOperationsAreFinished]; [app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }];この男はどう? – Xcoder
あなたたちは愚かな答えと愚かなコメントで議論する権利はありません。正に、これは議論するトピックです。みなさん、私はあらゆることの詳細に目を通すことができるように、あなたにオープンな議論をお願いします。ありがとう –
バックグラウンドで大規模なビデオをアップロードするNSOperationQueueを使用することができます、リンゴは私のアプリを拒否する?? –