1

実行中の現在のタスクを一時停止するのに問題があります。NSOperationQueue setSuspended=YES一時停止とsetSuspended=NOプロセスの再開を設定しようとしました。

アップルのドキュメントによると、 すでに実行中のタスクを一時停止することはできません。

操作の実行を一時的に停止する場合は、setSuspended:メソッドを使用して対応する操作キューを一時停止できます。キューを一時停止しても、すでに実行中の操作がタスクの途中で一時停止することはありません。これは、新しい操作の実行がスケジュールされないようにするだけです。ユーザーが最終的にその作業を再開したいと思う可能性があるため、進行中の作業を一時停止するというユーザーの要求に応じてキューを一時停止する場合があります。

私のアプリは、インターネットが利用できない場合にアップロード操作にかかる時間を一時停止し、インターネットが利用可能になったら最終的に同じ操作を再開する必要があります。これに対する回避策はありますか?または、現在実行中のタスクをゼロから開始する必要がありますか?

4

2 に答える 2

1

ゼロから始める必要があると思います。そうでなければ、2つの問題が発生します。現在のアップロードを再開した場合、パケットを見逃していないかどうかを保証することはできません。同時に、長期間接続が利用可能になると、操作が不完全なため、サーバーが以前にアップロードしたデータを削除する場合があります。

于 2013-03-26T14:13:35.490 に答える
1

操作キューを再開または一時停止できるかどうかは、ここでは問題ではありません... TCP接続のサービスに戻ったときに、想像どおりに機能した場合(および機能しなかった場合)は、状態が悪い、タイムアウトした、リモートで閉じられた可能性があります...サーバーがサポートしているものを確認し、REST(または同様の)サービスの一部を使用して、新しい新しい接続で停止したアップロードを再開する必要があります。

まだの場合は、これを印刷してキューブの壁に貼り、家族が着るTシャツを作ってください...スクリーンセーバーとして追加しますか?

于 2013-03-26T14:20:34.430 に答える