此樣本顯示了如何使用後台傳輸服務在後台下載檔案,即使當應用程式不再運行在前台。
通過BackgroundTransferRequest 實現上傳下載
// Create the new transfer request, passing in the URI of the file to // be transferred.BackgroundTransferRequest transferRequest = new BackgroundTransferRequest(transferUri);// Set the transfer method. GET and POST are supported.transferRequest.Method = "GET";
通過TransferPreferences設定,是否用Wifi下載,是否充電時下載
// If the WiFi-only checkbox is not checked, then set the TransferPreferences // to allow transfers over a cellular connection. if (wifiOnlyCheckbox.IsChecked == false) { transferRequest.TransferPreferences = TransferPreferences.AllowCellular; } if (externalPowerOnlyCheckbox.IsChecked == false) { transferRequest.TransferPreferences = TransferPreferences.AllowBattery; } if (wifiOnlyCheckbox.IsChecked == false && externalPowerOnlyCheckbox.IsChecked == false) { transferRequest.TransferPreferences = TransferPreferences.AllowCellularAndBattery; }
使用隔離儲存區 (Isolated Storage)保持檔案
//在隔離儲存區 (Isolated Storage)中,判斷是否檔案已存在, 存在則刪除using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication()) { string filename = downloadFile; if (isoStore.FileExists(filename)) { isoStore.DeleteFile(filename); } }
類BackgroundTransferRequest 屬性:
TransferStatus 傳輸狀態
TotalBytesToReceive 檔案大小
BytesReceived 已收到的檔案大小
代碼下載:
http://code.msdn.microsoft.com/wpapps/Background-Transfer-ce07e86f