0

アプリがバックグラウンドにある場合、BackgroundTransferRequest を BackgroundTransferService に追加すると成功しますが、アプリがフォアグラウンドに戻るまで、新しい要求は実際には実行されません。完了するまでにかなりの時間がかかる可能性のある小さなファイルを多数ダウンロードするという私のシナリオにはあまり適していません。

マイクロソフトはおそらく設計によりこの動作を実装していると思いますが(?)、これを回避する方法または代替アプローチを知っている人はいますか?

問題の背景のビット:

マップのセクションをダウンロードしてキャッシュし、オフラインで使用できるようにする Windows Phone 8 マップ アプリを開発しています。このプロセスでは、何千ものマップ タイルをダウンロードする必要があります。

25 の BackgroundTransferRequest の完全な制限を生成し、リクエストが完了すると BackgroundTransferService にさらに追加するプロセスを作成しました。アプリが実際にバックグラウンドに入るまで、これはすべて正常に機能します。

タイルを zip にまとめて単一のリクエストとしてダウンロードできるように、Web サーバー側で処理を行うことを検討しましたが、これはさらに複雑であり、ダウンロードを完了してから抽出するために電話で 2 倍のスペースが必要になります。元のパッケージを削除する前のファイル。しかし、理想的には、新しい BackgroundTransferRequest を強制的にバックグラウンドで実行する方法を見つけたいと思います。

4

1 に答える 1

0

実際の質問が何であるかは明確ではありませんが、それらを zip ファイルにまとめてダウンロードすることをお勧めします。ほとんどの場合、数千のファイルよりも 1 つのファイルで作業する方が簡単です。

ディスク容量が本当に問題である場合 (単なる理論上の問題ではありません。以前は 20 MB 未満のマップ タイルを何千も入れていましたが、画像の複雑さと品質によって異なります)、いくつかの zip ファイルを作成できます。そうすれば、BTR の問題を回避でき、(一時的であっても) 多くのディスク領域を占有しません。

于 2013-07-18T09:00:59.890 に答える