2011-11-21 8 views
6

WP7でバックグラウンドファイル転送を使用するときにこの問題が発生します。私のアプリケーションが実行されているときは完全に動作しますが、Windowsボタンをクリックするとすぐに停止します(アプリケーションを再度アクティブにすると再開します)。バックグラウンドで実行するバックグラウンドファイル転送の目的ではありません。アプリケーションは無効になっていますか?別のクラス(バックグラウンドエージェントクラス、メインプロジェクトとは別のもの)の中にいなければなりませんか?本当にイライラします。私がここでチュートリアルをしているときは、http://msdn.microsoft.com/en-us/library/hh202959(v=vs.92).aspxです。バックグラウンドファイル転送の問題

バックグラウンドで実行されているかどうかを確認するために必要な「特別な」ことがいくつかあります。自分で作成したもの(URLなどを取得するためのもの)非アクティブ化?非アクティブ化中にキューに追加することはできませんか?お時間を

どうもありがとう:)

EDIT:少しデバッグキュー内のファイルが実際にダウンロードしていることを私に伝えます。それは終了ですが、私は、アプリケーションを再度アクティブにするまで、次のものを取得しません。これを行うときに自分のメソッドや変数などを使用することはできませんか?たぶん、私は、例えば、20項目の内部キューを持っています。これがゼロになると、ダウンロードキュー(最大5)にどのようにデータを入れることができますか?

EDIT2は:

// Check to see if the maximum number of requests per app has been exceeded. 
if (BackgroundTransferService.Requests.Count() >= 5) 
{ 
// Note: Instead of showing a message to the user, you could store the 
// requested file URI in isolated storage and add it to the queue later. 
MessageBox.Show("The maximum number of background file transfer requests for this application has been exceeded. "); 
return; 
} 

しかし、我々は、バックグラウンドで、この中に行うか、できない場合、それは言っていない:マイクロソフトからのサンプルでは、​​彼らはあなたが後でキューに追加することができると言います。それはバックグラウンドファイルの転送に関するものなので、それを言及すべきでした。さもなければ、それはバックグラウンドで行うことができます。しかし、私たちはそれを知ることができません。これを100%確認できる人は誰ですか?

答えて

3

私もこれを調べました。私の研究に基づいて、最大値の後のキューに値を設定することはできません。 5つのキューに入れられたダウンロードが完了しました。私はバックグラウンドエージェントを使用することを考えましたが、BackgroundTransferRequest.Addはバックグラウンドエージェントからは利用できません。これは、アプリが実行されているときにダウンロードをキューに入れる唯一の方法であることを意味します(Unsupported APIs for Background Agents for Windows Phone参照)。

バックグラウンドエージェントを使用してダウンロードが完了し、次の5回のダウンロードをキューに入れるようにアプリを開始する必要があることをユーザーに知らせるトースト通知を送信することしか考えられません。これは理想的ではありません。

+0

返信いただきありがとうございます。それは基本的に私が見つけたもので、それだけでは十分ではありません。私はこれを行う別の方法が必要であると仮定し、誰かがこれを見て、解決策を見つけたでしょうか? – kgrevehagen

関連する問題