Live SDK の OneDrive API には通常のアップロード/ダウンロードの他に Windows ストアアプリのバックグラウンドデータ転送を利用した BackgroundDownloadAsync と BackgroundUploadAsync というメソッドがあります
バックグラウンドデータ転送はアプリが中断状態でもデータ転送が継続できるとの説明がありましたが、オフラインや中断とシャットダウン時はどうなるのかよくわからなかったので試してみました!
OneDrive API でバックグラウンドデータ転送を開始すると、VisualStudio 上の デバックの場所 ツールバーに実行中の転送スレッドが表示されるようです
これが表示されているかどうかで実行状態が把握できそうなので、オフライン、中断、中断とシャットダウンでどうなるか確認してみたところ、下記のようになりました
オフライン
開始直後にオフラインだとキャンセル、少し経ってからだと一時停止(スレッド自体は残る)、オンラインになったら転送再開
中断
中断しても転送は継続
中断とシャットダウン
シャットダウンすると転送が途中で停止(スレッド終了)、アプリがアクティブになると途中から再開
中断とシャットダウンから復帰する場合も再開するところが便利ですが、この場合通常 await で待機した場合の戻り値や処理結果をどのように参照すればよいのかわかりませんでした;
BackgroundDownloader.GetCurrentDownloadsAsync や BackgroundUploader.GetCurrentUploadsAsync というそれっぽいメソッドで参照できるか試してみましたが無理でした;