アプリがバックグラウンドにある場合、BackgroundTransferRequest を BackgroundTransferService に追加すると成功しますが、アプリがフォアグラウンドに戻るまで、新しい要求は実際には実行されません。完了するまでにかなりの時間がかかる可能性のある小さなファイルを多数ダウンロードするという私のシナリオにはあまり適していません。
マイクロソフトはおそらく設計によりこの動作を実装していると思いますが(?)、これを回避する方法または代替アプローチを知っている人はいますか?
問題の背景のビット:
マップのセクションをダウンロードしてキャッシュし、オフラインで使用できるようにする Windows Phone 8 マップ アプリを開発しています。このプロセスでは、何千ものマップ タイルをダウンロードする必要があります。
25 の BackgroundTransferRequest の完全な制限を生成し、リクエストが完了すると BackgroundTransferService にさらに追加するプロセスを作成しました。アプリが実際にバックグラウンドに入るまで、これはすべて正常に機能します。
タイルを zip にまとめて単一のリクエストとしてダウンロードできるように、Web サーバー側で処理を行うことを検討しましたが、これはさらに複雑であり、ダウンロードを完了してから抽出するために電話で 2 倍のスペースが必要になります。元のパッケージを削除する前のファイル。しかし、理想的には、新しい BackgroundTransferRequest を強制的にバックグラウンドで実行する方法を見つけたいと思います。