-1

私のアプリケーションでは、TimeTriggered intervall でいくつかのデータを同期する必要があります。今、TimeTrigger を使用して BackgroundTask を作成しました。このタスク内で、BackgroundTransfer 操作を実行しています。これは機能しますが、それについていくつか質問があります。

  1. これは良い解決策ですか、それともこのシナリオに適した解決策はありますか?

  2. いくつかの謎の処刑物があります。アプリをデバッグ バージョンとして携帯電話に展開すると、すべてが魅力的に機能し、すべての転送操作は BackgroundTask の 1 回の実行で完了します。これには +/- 15 分かかります。アプリをリリース バージョンとして携帯電話にデプロイすると、BackgroundTask は 1 ~ 2 分間だけデータを転送し、TimeTrigger からの次の実行が開始されるまで停止します。なぜ違いがあるのか​​、それはなぜですか?

編集: リソースを大量に消費するタスクは、私にとってはオプションではありません。アプリは WinRT ストア アプリ上に構築されています。これが backgroundTask からの制限である場合、どうすればそのような操作をバックグラウンドから実行できますか?

edit2: @kiewic、私はそれを待機可能と呼んでいますが、それを変更しますが、これはバックグラウンドタスクで実行されるため、違いは何ですか?

4

1 に答える 1

1

BackgroundTask と BackgroundTransfer を区別する必要があります。これらは2つの異なるものです。

バックグラウンド タスクの仕事は、バックグラウンド転送を開始することです。BackgroundTransfer (アップロードまたはダウンロード操作) の仕事は、アプリケーションとは独立して転送を実行することです

転送は BackgroundTask 内で行う必要はありません。バックグラウンド転送の開始時にawaitを呼び出すと、アップロードが完了するまで待機します。そうしないと、タスク内で実行を続行します (たとえば、ループしている場合は、ビルドを開始して次のアップロードを開始できます)。

バックグラウンド転送を開始すると、アプリや OS によるタスクとは独立して管理されます。電話が再起動されても存続できます。

于 2014-11-25T15:04:01.693 に答える