大きなビデオをAmazons3バケットにアップロードする必要があるアプリケーションがあります。NSOperationQueueによって規制されているNSOperationsを使用して、並行タスクを実行しています。
小さいビデオ(200 Mb未満)をアップロードするときに問題はありません。しかし、問題は、大きなビデオをアップロードしようとすると、10分後にアップロードプロセスが中断されることです。
私はすでに beginBackgroundTaskWithExpirationHandler:^
10分のウィンドウを取得するために使用しています。このタイムアウト期間を延長する適切な方法は何ですか?
どういうわけかこのタイムアウトを延長できた場合、Appleはアプリを拒否しますか?
AppDelegate
現在、iPhoneのリンクを参照して作成した次のコードがあります-イベントをポーリングするためのバックグラウンド
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication* app = [UIApplication sharedApplication];
dispatch_block_t expirationHandler;
expirationHandler = ^{
bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
};
bgTask = [app beginBackgroundTaskWithExpirationHandler:expirationHandler];
}
このコードを使用すると、バックグラウンドタスクが中断されることはありません。有効期限ハンドラーの内部でわかるように、無限に実行されるタスクにつながる別のバックグラウンドタスクイベントを開始しました。アップロードが完了したらバックグラウンドタスクを終了するロジックを記述できますが、このアプローチには疑問があります。
皆さんはどう思いますか?
どういうわけかハックですか?Appleは次のアプローチでアプリを拒否しますか?