HTML实时显示任务状态,如何监视后台任务进度和完成 (HTML)
如何監視后臺任務進度和完成 (HTML)
12/11/2015
本文內容
[ 本文適用于編寫 Windows 運行時應用的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果你要針對 Windows 10 進行開發,請參閱 最新文檔 ]
介紹應用如何識別后臺任務報告的進度和完成。 后臺任務從應用中分離開來,并且它們單獨運行,但可以通過應用代碼監視后臺任務進度和完成。若要進行該操作,應用訂閱已向系統注冊的后臺任務事件。
你需要了解的內容
技術
先決條件
本主題假定你擁有一個注冊后臺任務的應用。若要快速構建后臺任務,請閱讀快速入門:創建和注冊后臺任務。有關條件和觸發器的詳細信息,請參閱使用后臺任務支持應用。
說明
步驟 1:
創建一個函數,該函數將連接到事件處理程序以完成后臺任務。此函數必須采用一個 BackgroundTaskCompletedEventArgs 對象且不采用任何其他參數。
如果你要在本地注冊某個函數,則可以使用以下內存占用:
function OnCompleted(args)
{
// TODO: Add code that deals with background task completion.
}
然后你可以像這樣向你的 BackgroundTaskRegistration 對象(該對象是通過使用對注冊函數的成功調用來獲取的)注冊它:
backgroundTaskRegistration.addEventListener("completed", onCompleted);
你將需要添加代碼,該代碼將處理后臺任務完成。
例如,后臺任務示例使用 LocalSettings 中保存的完成狀態更新 UI:
function OnCompleted(args)
{
//
//
//
backgroundTaskName = this.name;
//
// Call a method to update the UI (beyond the scope of this example).
//
UpdateUI();
}
強大的應用可以通過調用 CheckResult 來檢查后臺任務引發的異常。
可以對后臺任務示例進行如下修改,以處理后臺任務引發的異常。
function OnCompleted(task, args)
{
var settings = ApplicationData.Current.LocalSettings;
var key = task.TaskId.ToString();
try
{
args.CheckResult();
BackgroundTaskSample.SampleBackgroundTaskStatus = settings.Values[key].ToString();
}
catch (Exception ex)
{
BackgroundTaskSample.SampleBackgroundTaskStatus = "Error: " + ex.Message;
}
UpdateUI();
}
步驟 2:
對 OnProgress 后臺任務事件處理程序方法使用以下足跡:
function OnProgress(task, args)
{
// TODO: Add code that deals with background task progress.
}
向處理后臺任務完成的事件處理程序中添加代碼。
例如,后臺任務示例使用通過 args 參數傳遞的進度狀態更新 UI:
function OnProgress(task, args)
{
var progress = "Progress: " + args.Progress + "%";
BackgroundTaskSample.SampleBackgroundTaskProgress = progress;
UpdateUI();
}
步驟 3:
使用新的和現有的后臺任務注冊事件處理程序函數。
當應用第一次注冊后臺任務時,應用應該注冊以在任務運行(同時應用仍然在前臺處于活動狀態)時接收它的進度和完成更新。
例如,后臺任務示例在它觸發的每個后臺任務上調用以下函數:
function AttachProgressAndCompletedHandlers(IBackgroundTaskRegistration task)
{
task.Progress += new BackgroundTaskProgressEventHandler(OnProgress);
task.Completed += new BackgroundTaskCompletedEventHandler(OnCompleted);
}
當應用啟動或導航到后臺任務狀態相關的新頁面時,它應用獲取檔期已注冊的后臺任務列表并將它們與進度和完成事件處理程序函數關聯。應用程序當前已注冊的后臺任務列表位于 BackgroundTaskRegistration.AllTasks 屬性中。
例如,后臺任務示例在導航到 SampleBackgroundTask 頁面時使用以下代碼附加事件處理程序:
function OnNavigatedTo(NavigationEventArgs e)
{
foreach (var task in BackgroundTaskRegistration.AllTasks)
{
if (task.Value.Name == BackgroundTaskSample.SampleBackgroundTaskName)
{
AttachProgressAndCompletedHandlers(task.Value);
BackgroundTaskSample.UpdateBackgroundTaskStatus(BackgroundTaskSample.SampleBackgroundTaskName, true);
}
}
UpdateUI();
}
相關主題
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的HTML实时显示任务状态,如何监视后台任务进度和完成 (HTML)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5 接东西游戏,html5手机触
- 下一篇: 织梦自定义字段html,织梦dedecm