1

メソッドで backgroundSessionConfiguration の NSURLSession を使用するのが好きです。

uploadTaskWithRequest:fromFile:

しかし、次のファイルを選択するには、アップロード後にいくつかのコードを実行する必要があります。選択したら、NSURLSession を再度開始して、uploadTaskWithRequest:fromFile: メソッドでアップロードします。

したがって、一連のファイルを再帰的にアップロードします

それが可能かどうか知っていますか?

4

1 に答える 1

1

簡単な答えは、はい、可能です。これを行うのに 30 秒かかります。

  1. どのようなコードを実行しても、アプリがバックグラウンドで再起動された場合に実行されることを確認する必要があります。つまり、メモリ内のすべてが削除され、再初期化されます。これは、アプリがバックグラウンドにあるときに、ユーザーがメモリを大量に消費する他のアプリを実行している場合、アプリがメモリ不足のために強制終了されるためです。ただし、メモリ プレッシャによる強制終了により、NSURLSession タスクが完了した後のある時点でアプリケーションが起動することになります。

  2. 私はそれをお勧めしません。私の経験に基づくと、このように一度に 1 つずつアップロード リクエストを連鎖させることは非常に効果的ではありません。アプリのウェイクアップにはコストがかかり、それほど頻繁に、または確実に発生することはまったくありません。アップロードの状態ではなく、ユーザーの使用状況に依存します。

私の推奨は、NSURLSession 構成をシリアルに構成し (ホストごとに一度に 1 つのタスクを処理する場合、異なるホストに接続している場合、タスクを実際にシリアル化できないと思います)、すべてのアップロード タスクを送信することです。一度に nsnetworkd にそれらのスケジューリングと送信を任せてください。私の経験では、これは桁違いに信頼性が高く、はるかに高速でした。

それが役立つことを願っています。

于 2014-04-18T16:45:00.633 に答える